ddb - Erase environment differences, make developers happy !
Project description
ddb
Erase environment differences, make developers happy !
ddb automates application configuration so differences between development, staging and production environment can be erased. It provides features to generate, activate and adjust configuration files based on a single overridable and extendable configuration, while enhancing the developer experience and reducing manual operations.
Primarly designed for docker-compose and docker-devbox, this tool makes the developer forget about the docker hard stuff by providing commands right into it's PATH, so it's experience looks like everything is native and locally installed.
Thanks to a pluggable, event based and easy to extend architecture, it can bring powerful configuration automation to any technical context.
Install
ddb is supported on Linux and Windows. MacOS is still unsupported, but it should come soon.
You can download binary releases on github, or install on Python >= 3.5 with pip.
pip install docker-devbox-ddb
Docs
Documentation is available here
History
1.2.0 (2020-10-03)
- Core: Add
--ejectoption toconfigurecommand. This option can be used to convert the project to a static version and detach it from ddb. - Info: Add
traefik.extra_servicestoddb infocommand output. - Gitignore: Gitignore feature is now disabled by default on non-dev environment.
1.1.1 (2020-09-22)
- Build: Fix
ModuleNotFoundError: No module named 'compose'error in binaries built of ddb.
1.1.0 (2020-09-21)
- Docker: Add
--rmflag to docker-compose run command in binaries. - Version: Fix
version.branchvalue when using a detached repository and head refs many branches. If no branch is reported inrefs/head, it will userefs/remote/originto get branche name. - Config: Lists merge strategy is now defined as
overrideby default. - Config: Add support for
merge/valueinside configuration to control merge behavior between configuration files. - Config: Add support for
ddb.<env>.ymlconfiguration file based oncore.env.currentvalue.
1.0.9 (2020-09-12)
- Traefik: Use Jinja template for
ssl_config_templateparameter (Jinja context match the ddb.yml configuration). - Traefik: Add
extra_servicesintraefikfeature. Extra service allow to configure a service running outside of the docker stack inside traefik, so it's included in the docker network and still benefits of docker-devbox features (domain name, SSL certificates, ...). - Version: Make detached repo report the effective branch instead of
HEAD.
1.0.8 (2020-09-10)
- Config: Fix issues with custom config parameters.
- Shell: Raise an error when activate/deactivate was already called.
1.0.7 (2020-09-09)
- Config: Fix overriding of default values with
DDB_OVERRIDE_*environment variables. - Core: Use
toilal/pyinstaller-linuxandtoilal/pyinstaller-windowsdocker images to build binaries.
1.0.6 (2020-09-09)
- Copy: Add
file:generatedevents on copy to add copied files in.gitignore. - Copy: Run copy feature on each
ddb configurecommand instead of a single time. - Shell: Use
.instead ofsourceto make/bin/shwork properly. - Shell: Add
check-activatedcommand and avoid issues when activating the project many times.
1.0.5 (2020-09-07)
- Jsonnet: Fix
duplicate field nameerror when sharing a named volume on many docker-compose services. - Certs: Add creation of
.signer.crtto help automation of signer TLS Certificate configuration in the project.
1.0.4 (2020-09-04)
- Shell: Fix binary shims when
-h/--helpis given as argument. - Core: Add the
infocommand which output compacted information about docker containers such as environment variables, virtual host, exposed ports and binaries. - Jsonnet: Fix
cache_fromvalue for docker services to match theimageone - Fixuid: Enhance fixuid configuration when image has no entrypoint defined.
- Config: Add support for
ddb.ymlconfiguration watch. If a project configuration file changes, configuration is reloaded and command is runned again to update all generated files. It currently doesn't watch configuration files from ~/.docker-devbox nor ~/.docker-devbox/ddb directories as it's based onfilefeature events.
1.0.3 (2020-09-01)
- Certs: Fix inversion between certificate and key for
certs:generatedandcerts:availableevents.
1.0.2 (2020-08-28)
- Core: Fix
[Errno 11] Resource temporarily unavailableerror when running more than one instance of ddb. - Aliases: Fix global aliases for projects lying inside docker devbox home directory (traefik, portainer, cfssl).
1.0.1 (2020-08-25)
- Docker: Limit
port_prefixto655instead of1000to avoid invalid port specification error.
1.0.0 (2020-08-25)
- Binaries: Fix docker binary workdir value
- Shell: Add
global_aliasesconfiguration option to generate aliases inside global docker devbox home.
1.0.0-beta9 (2020-08-20)
- File: Emit delete events before found events.
- Core: Set working directory to project home.
- Fixuid: Upgrade fixuid to v0.5.
1.0.0-beta8 (2020-08-10)
- Binary: Add exe option to use docker-compose exec instead of run
- Gitignore: Add enforce option to force addition of file to gitignore
- Certs: Add
certs.cfssl.append_ca_certificateandcerts.cfssl.verify_checksumoptions support - Core: Add release check on --version
- Core: Fix crash when github quota has exceeded on release check
1.0.0-beta7 (2020-07-25)
- Add MacOS support (no binary package available though)
- Shell: Add zsh support
- Jsonnet: Fix an issue when reverse proxy is not defined to traefik.
- Docs: Add way more docs
1.0.0-beta6 (2020-07-03)
- Windows Shell: Fix alias generation
- Jsonnet: Add
redirect_to_httpsto ddb.VirtualHost in order to redirect http requests to https - Certs/Traefik: Remove previously generated certs when certs:generate event is removed from docker-compose.yml configuration
1.0.0-beta5 (2020-06-26)
- Fixuid: Add Dockerfile generation when fixuid.yml file is created or deleted
- Docker: Add
docker.reverse_proxy.certresolverto setup traefik certresolver globally - Docker: Set
docker.restart_policydefault value tounless-stoppedifcore.env.currentis different ofdev - Jsonnet: Add optional
router_ruleparameter toddb.VirtualHostfunction in order to override the defaultHost(hostname). For traefik, available values in the official documentation - Templates: Keep the file that match template target name when it has been modified since latest rendering (#39)
1.0.0-beta4 (2020-06-25)
- Remove existing file or directory when generating a new file (#31)
- Docker: Fix missing
COMPOSE_PROJECT_NAMEandCOMPOSE_NETWORK_NAMEenvironment variables on ddb activate - Jsonnet: Fix a bug when multiple Virtualhost are defined on the same docker-compose service
1.0.0-beta3 (2020-06-23)
- Shell: Add aliases management
1.0.0-beta2 (2020-06-08)
- Docker and Permissions features are now plugged on File feature
- Docker-compose locally mapped files/directories are now created on
ddb configureto ensure valid user owning - Fix Logging Error in chmod
- Upgrade chmod-monkey and use it everywhere to improve readability
1.0.0-beta1 (2020-05-12)
- Add
gitfeature. Currently, there is only one action : git:fix-files-permissions to update permissions for files based on git index. In order to update permissions of a file in git, use commandgit update-index --chmod=+x foo.sh. It can be disabled by settinggit.fix_files_permissionsto false in configuration. - Add
--fail-safecommand line argument to stop on first error. - Add
utils.processmodule to help running external commands. It makes possible to configure path and additional arguments to any external process invoked by ddb. - Default command line argument values can now be customized in configuration using
defaultskey. - Fix and issue with traefik and jsonnet docker-compose when
networksis defined in at least one service definition. - Add
permissionsfeature to apply chmod on some files. - Add windows support for shell integration (cmd.exe only, powershell is still unsupported).
1.0.0-alpha1 (2020-05-10)
- First release, containing the following features:
certs,cookiecutter,copy,core,docker,file,fixuid,gitignore,jinja,jsonnet,run,shell,smartcd,symlinks,traefik,version,ytt
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file docker-devbox-ddb-1.2.0.tar.gz.
File metadata
- Download URL: docker-devbox-ddb-1.2.0.tar.gz
- Upload date:
- Size: 4.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37bab06c0b9759070a46ef8d107ca3dbead6da81aaea1c06d08ce49907e50aa4
|
|
| MD5 |
c3ee63f5ef62786c37072877b518c787
|
|
| BLAKE2b-256 |
fac6637cf7d315b9fbc9eea090889c8c0ce7adc47ae55765b085b409348da0dd
|