Package: docker-devbox-ddb
ddbErase environment differences, make developers happy !ddbautomates 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 fordocker composeanddocker-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.Installddbis supported on Linux and Windows. MacOS is still unsupported, but it should come soon.You candownload binary releases on github, or
install on Python >= 3.5 with pip.pip install docker-devbox-ddbDocsDocumentation is available hereHistoryv2.0.0 (2023-10-16)FeatureAlways specify the docker-compose.yml file in docker run (#224) (3f756de)Fixtests:Replace docker-compose with python-on-whales (#227) (52c2bce)doc:Fix XDebug typo in doc (25a87f3)doc:Links to docker-devbox should go on the correct repo (2bee946)tests:Unset local variable override to allow local tests (09f7caa)ci:Remove deprecated docker-compose dependency (714da68)ci:Use python-semantic-release < 8 for now (f51174d)readme:Replace compose v1 with v2 (b63fdd0)tests:Fixed tests related to the recent ddb run modification (cf0376f)pylint:Disable false-positive pylint warning (cb460c9)doc:Fixed typo in symfony sample (ffb8f19)Breakingremove support for ubuntu 18 (b2ff624)v1.17.0 (2023-02-18)Featuredependencies:Add python 3.11 support (e6fcd6a)Fixshell:Replace tempfile with mktemp to remove the deprecation warning (46329df)v1.16.0 (2022-10-13)Featurefile:Add**/.yarntofile.excludesdefault value (5ccfb47)windows:Improve windows support (2aded1f)docker:Add docker compose v2 support (d1d522b)docker:Setdocker.ipfallback to127.0.0.1(5d0afb8)Fixwindows:Fix invalid mapPath in libjsonnet (74ef98a)docker:Sort path mapping in both python and jsonnet (e9d53e3)Performancefile:Improve performance of file walker (6bf49ea)v1.15.6 (2021-11-09)Fixrun:Wrap $@ in single quote to echo command in temporary file (d5ee3a2)v1.15.5 (2021-11-09)Fixrun:Fix DDB_RUN_OPTS handling to quote arguments properly (e91a168)v1.15.4 (2021-11-05)Fixshell:Fix invalid generated binary shims (#213) (5301003)v1.15.3 (2021-11-05)Fixshell:Improve binary shim by generating temporary file (#211) (22046e9)v1.15.2 (2021-10-18)Fixcore:Use tag instead of version to build release url (446b140)copy:Fix copy when used in a subdirectory (602086b)v1.15.1 (2021-10-14)Fixfixuid:Enhance verbosity and user messages (3668379)v1.15.0 (2021-10-14)FeatureDrop ubuntu 16.04 support for binary (7335a5c)fixuid:Use docker cli instead of docker-py (cba2394)Fixfixuid:Use fixuid v0.5.1 (0fd82e1)v1.14.0 (2021-08-04)Featurejsonnet:Generate compose network name without underscore (4b6c139)Fixjsonnet:Replace dots with dash in traefik labels (#205) (9a79b7b)jsonnet:Remove duplicate _default in COMPOSE_NETWORK_NAME env var (0c2113a)v1.13.3 (2021-04-01)Fixrun:Use avoid_stdout in ddb run command (#204) (589cb13)Documentationbinaries:Add DDB_RUN_OPTS note (5425efe)v1.13.2 (2021-03-24)Fixbinary:Binary is now registered again when condition is changed (fd5230b)Documentationbinaries:Typo in docker compose command (88ab7b0)v1.13.1 (2021-02-24)Fixself-update:Fix permission issues with self-update command (#146) (4cd8bce)Documentationfaq:Add ddb-linux-older-glic edition note (895742b)v1.13.0 (2021-02-24)Featurecore:Add release_asset_name to customize asset to download on update (e2b3324)DocumentationUpdate FAQ (4cea4bf)Remove defaults, add Djp packages and Binaries pages (0ebc892)jsonnet:Add missing jsonnet.docker.compose configuration properties (5941a46)v1.12.0 (2021-02-19)Featureconfig:Add more capabilities to config command (89d20d6)Fixjsonnet:Remove client_port=9000 for xdebug3 configuration (d8ca959)jsonnet:Set log_level=0 to xdebug3 configuration (689efb0)v1.11.0 (2021-02-17)Featurerun:AddDDB_RUN_OPTSsupport to add docker-compose options on ddb run (b1aca49)Fixcore:Disable core.check_updates after running self-update command (6274317)v1.10.3 (2021-02-15)Fixalpine:Add Alpine Linux support (bcf04b5)v1.10.2 (2021-02-15)Fixpackage:Fix binary package errorNameError: name 'help' is not defined(b066513)package:Fix binary package errorNameError: name 'help' is not defined(47bf72c)v1.10.1 (2021-02-15)Fixcore:Use new binary names for self-update (56fc5ab)v1.10.0 (2021-02-15)Featurejsonnet:Add mount options to mount named volumes inside project directory (401c9bd)config:Addcore.check_updatesconfiguration (3a779a4)Fixtraefik:Stop using deprecated properties internally (d3f06d8)selfupdate:Display detected binary path on permission error (c0cfe91)v1.9.2 (2021-02-09)Fixfixuid:Fix automatic fixuid configuration for some Dockerfile (f504416)binary:Use COMPOSE_IGNORE_ORPHANS=1 in global binary shim (9d4a955)binary:Fix orphan containers when using global binaries (#195) (40b3cae)v1.9.1 (2021-02-08)Fixjsonnet:Add missing ddb.feature.jsonnet.docker package in exe version (5253802)v1.9.0 (2021-02-05)Featurejsonnet:Add port conflict solver as jsonnet postprocessor (0c7bd16)v1.8.1 (2021-02-05)Fixjsonnet:Add configurable default value for Binary global flag (ed444eb)gitignore:Avoid addition of global binaries in .gitignore (15f95f4)v1.8.0 (2021-02-05)Featureconfig:Enhance config command output and add options (#189) (02dbcb5)binary:Add global and entrypoint options to binaries (#185) (61f973c)Fixfile:Add .idea directory to default excludes (24d3df7)jsonnet:Add support for volume starting with an environment variable (e4f2bcb)gitignore:Check if file is gitignore before trying to remove it (#190) (4cbcdec)v1.7.3 (2021-02-04)FixAdd missing extensions in binary bundle (#187) (63febce)v1.7.2 (2021-02-03)Fixjinja:Fix extra EOL issue when deprecated property are used (13c2d0e)v1.7.1 (2021-02-03)Fixgitignore:Sort gitignore entries to avoid conflicts (071fedd)v1.7.0 (2021-02-03)Featurecookiecutter:Add .patch files support in cookiecutter feature (3b20434)djp:Add djp packages support through cookiecutter feature (15938ec)jsonnet:Enhanceddb.docker.libjsonnetto support future djp packages (a48c5a9)core:Addcore.domain.valueread only property (ab4001e)jsonnet:Addddb.env.currentandddb.env.available(edaef0a)Fixautofix:Make--autofixless intrusive and fix variables only (70389db)jinja:Autofix now fix templates in code blocks only (8575f79)inetum:We are Inetum, mais Orléans quand même :) (f2e85ea)inetum:We are Inetum, mais Orléans quand même :) (5281071)Documentationindex:Update badges (39cd66b)v1.6.1 (2021-01-20)Fixmigration:Add boolean value support fr docker.reverse_proxy.type migration (#184) (682f23f)v1.6.0 (2021-01-19)Featurejinja:Add configuration options to jinja Environment (#181) (092d9d0)scope:Refactor configuration schemas with autofix (#164 #179) (10b7a72)Fixconfig:Fix deprecations warnings and backward compatibility (6ab20c2)Documentationusage:Update usage output in docs (4ebb752)v1.5.1 (2021-01-15)Fixbinary options:Fix an issue introduced by #141 (f404353)v1.5.0 (2021-01-14)Featureconfigure:Ensure project configuration file is available before configure (#170) (bd1c814)file:Addtarget/anddist/directories to default excludes (9b7b467)binaries:Allow many binaries to be registered for the same name (#141) (b3d8cd8)permission:Copy permission from template file to target (#147) (8595c9f)devbox:Prepare next release of docker-devbox with retro-compatibility (fdfbc24)jsonnet:Add Expose function in ddb.docker.libjsonnet (dffcab1)Fixshell:Fix drive case for default Windowsdocker.path_mapping(#159) (a3e2c09)shell:Use_instead of-to sanitize environment variable name (#160) (f9e11a8)shell:Add support for relative paths in shell.path.directory (#168) (6f4f938)main:Clear cache when an unexpected error occurs (#169) (8c0940a)binary options:Fix an issue introduced by #141 and force lf (76c7bf2)shell:Move PWD environment exclude to configuration (848ec99)traefik:Check domain is not empty when rule is empty (33bd166)Documentationstyle:Enhance docs style for all configuration properties and examples (9c396d5)jsonnet:Add session parameter to XDebug documentation (5febad8)v1.4.4 (2020-12-30)Fixbash:Exclude PWD environment variable from backup/restore (#142) (e8ee977)update:Fix can only concatenate str (not "list") to str (#143) (0348407)v1.4.3 (2020-12-22)Fixdependencies:Remove docker-compose dependency (#140) (ac12c8a)core:Fix self-update command error on file replace (#138) (97e4f81)changelog:Fix changelog (9507778)fixuid:Remove print scrap (dad030f)v1.4.2 (2020-12-21)Featurefixuid:Add Dockerfile comments to disable or customize fixuid automic configuration (e855efc)Fixfile:File scan now yield directories so you can use permission on directories (eb232d8)file:Fix recursive=False parameter in FileWalker (c81fd76)Documentationsetuptools:Update python versions in classifiers (4012cbf)v1.4.1 (2020-12-17)Fixcore:Fix self-update command (843cf67)v1.4.0 (2020-12-17)Featurecore:Addcore.required_versionparameter to enforce project ddb version requirement (#75) (bbf32e6)main:Add main:start event (8764d01)self-update:Add self-update command to update binary from github (#131) (0171f37)Add Python 3.9 support and drop Python 3.5 support (83e97e9)Documentationself-update:Add docs for the new self-update command (86b5ef8)contributing:We are now using github actions and semantic release (b4f1127)v1.3.1 (2020-12-16)Fixversion:Version check now removes "v" first character from tag (#129) (71a3567)v1.3.0 (2020-12-16)Featuredocker:Add https option to reverse-proxy features (libjsonnet and configuration) (c2c1fad)docker:Add support for named user and group (62ab647)configuration:Add insert/insert_if_missing merge strategies. (00d62b9)configuration:Add core.configuration.extra to include additional configuration files (b7d30de)xdebug:Add more parameters to XDebug jsonnet function (cf5dc74)JSonnet:Add support for XDebug 3 (6bc337c)Fixdocker:Add tests and fix issues with named user and group (b88470c)shell:Slufigy environment variable names (0513038)copy:Correction du NoneType error (4b798bd)docs:Fix typo for excludes configuration properties (d0cda14)Documentationchangelog:Reformat changelog (7440081)v1.2.3 (2020-11-13)Jsonnet: Add "JoinObjectArray" method.Jsonnet: Addpath_prefixoption for a VirtualHost.Docker: Adddocker.reverse_proxy.redirect_to_path_prefixwhich force redirection topath_prefixif defined on a
VirtualHost.Traefik: Addpath_prefixoption for a service.Traefik: Addredirect_to_path_prefixoption for a service which force redirection topath_prefixif defined on the
service.Docker: Add configurations fordocker-compose.ymlgeneration (file_version,service_initandservice_context_root).1.2.2 (2020-10-21)Docker: Adddocker.build_image_tag_fromand deprecatesdocker.build_image_tag_from_version.Watch: Fix file exclusion issues when an ancestor directory is excludedGitignore: add first slash to set full relative path of file added to the gitignoreDocker Binary: Check if the container is up if user run "ddb run " on a command flagged "exe". If it is down,
it will be launch.1.2.1 (2020-10-06)Jsonnet: Add ServiceName function available globally.Core: Avoid--ejectto delete files outside of project directory.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: Addtraefik.extra_servicestoddb infocommand output.Gitignore: Gitignore feature is now disabled by default on non-dev environment.1.1.1 (2020-09-22)Build: FixModuleNotFoundError: 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: Fixversion.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 asoverrideby default.Config: Add support formerge/valueinside configuration to control merge behavior between configuration files.Config: Add support forddb.<env>.ymlconfiguration file based oncore.env.currentvalue.1.0.9 (2020-09-12)Traefik: Use Jinja template forssl_config_templateparameter (Jinja context match the ddb.yml configuration).Traefik: Addextra_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 ofHEAD.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 withDDB_OVERRIDE_*environment variables.Core: Usetoilal/pyinstaller-linuxandtoilal/pyinstaller-windowsdocker images to build binaries.1.0.6 (2020-09-09)Copy: Addfile:generatedevents on copy to add copied files in.gitignore.Copy: Run copy feature on eachddb configurecommand instead of a single time.Shell: Use.instead ofsourceto make/bin/shwork properly.Shell: Addcheck-activatedcommand and avoid issues when activating the project many times.1.0.5 (2020-09-07)Jsonnet: Fixduplicate 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 theinfocommand which output compacted information about docker containers such as environment
variables, virtual host, exposed ports and binaries.Jsonnet: Fixcache_fromvalue for docker services to match theimageoneFixuid: Enhance fixuid configuration when image has no entrypoint defined.Config: Add support forddb.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 forcerts: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: Limitport_prefixto655instead of1000to avoidinvalid port specificationerror.1.0.0 (2020-08-25)Binaries: Fix docker binary workdir valueShell: Addglobal_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 runGitignore: Add enforce option to force addition of file to gitignoreCerts: Addcerts.cfssl.append_ca_certificateandcerts.cfssl.verify_checksumoptions supportCore: Add release check on --versionCore: Fix crash when github quota has exceeded on release check1.0.0-beta7 (2020-07-25)Add MacOS support (no binary package available though)Shell: Add zsh supportJsonnet: Fix an issue when reverse proxy is not defined to traefik.Docs: Add way more docs1.0.0-beta6 (2020-07-03)Windows Shell: Fix alias generationJsonnet: Addredirect_to_httpsto ddb.VirtualHost in order to redirect http requests to httpsCerts/Traefik: Remove previously generated certs when certs:generate event is removed from docker-compose.yml configuration1.0.0-beta5 (2020-06-26)Fixuid: Add Dockerfile generation when fixuid.yml file is created or deletedDocker: Adddocker.reverse_proxy.certresolverto setup traefik certresolver globallyDocker: Setdocker.restart_policydefault value tounless-stoppedifcore.env.currentis different ofdevJsonnet: Add optionalrouter_ruleparameter toddb.VirtualHostfunction in order to override the defaultHost(hostname).
For traefik, available values in theofficial documentationTemplates: 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 missingCOMPOSE_PROJECT_NAMEandCOMPOSE_NETWORK_NAMEenvironment variables on ddb activateJsonnet: Fix a bug when multiple Virtualhost are defined on the same docker-compose service1.0.0-beta3 (2020-06-23)Shell: Add aliases management1.0.0-beta2 (2020-06-08)Docker and Permissions features are now plugged on File featureDocker-compose locally mapped files/directories are now created onddb configureto ensure valid user owningFix Logging Error in chmodUpgrade chmod-monkey and use it everywhere to improve readability1.0.0-beta1 (2020-05-12)Addgitfeature. 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.Addutils.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 usingdefaultskey.Fix and issue with traefik and jsonnet docker-compose whennetworksis defined in at least one service definition.Addpermissionsfeature 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