1Change log
2==========
3
41.24.0 (2019-03-22)
5-------------------
6
7### Features
8
9- Added support for connecting to the Docker Engine using the `ssh` protocol.
10
11- Added a `--all` flag to `docker-compose ps` to include stopped one-off containers
12  in the command's output.
13
14- Add bash completion for `ps --all|-a`
15
16- Support for credential_spec
17
18- Add `--parallel` to `docker build`'s options in `bash` and `zsh` completion
19
20### Bugfixes
21
22- Fixed a bug where some valid credential helpers weren't properly handled by Compose
23  when attempting to pull images from private registries.
24
25- Fixed an issue where the output of `docker-compose start` before containers were created
26  was misleading
27
28- To match the Docker CLI behavior and to avoid confusing issues, Compose will no longer
29  accept whitespace in variable names sourced from environment files.
30
31- Compose will now report a configuration error if a service attempts to declare
32  duplicate mount points in the volumes section.
33
34- Fixed an issue with the containerized version of Compose that prevented users from
35  writing to stdin during interactive sessions started by `run` or `exec`.
36
37- One-off containers started by `run` no longer adopt the restart policy of the service,
38  and are instead set to never restart.
39
40- Fixed an issue that caused some container events to not appear in the output of
41  the `docker-compose events` command.
42
43- Missing images will no longer stop the execution of `docker-compose down` commands
44  (a warning will be displayed instead).
45
46- Force `virtualenv` version for macOS CI
47
48- Fix merging of compose files when network has `None` config
49
50- Fix `CTRL+C` issues by enabling `bootloader_ignore_signals` in `pyinstaller`
51
52- Bump `docker-py` version to `3.7.2` to fix SSH and proxy config issues
53
54- Fix release script and some typos on release documentation
55
561.23.2 (2018-11-28)
57-------------------
58
59### Bugfixes
60
61- Reverted a 1.23.0 change that appended random strings to container names
62  created by `docker-compose up`, causing addressability issues.
63  Note: Containers created by `docker-compose run` will continue to use
64  randomly generated names to avoid collisions during parallel runs.
65
66- Fixed an issue where some `dockerfile` paths would fail unexpectedly when
67  attempting to build on Windows.
68
69- Fixed a bug where build context URLs would fail to build on Windows.
70
71- Fixed a bug that caused `run` and `exec` commands to fail for some otherwise
72  accepted values of the `--host` parameter.
73
74- Fixed an issue where overrides for the `storage_opt` and `isolation` keys in
75  service definitions weren't properly applied.
76
77- Fixed a bug where some invalid Compose files would raise an uncaught
78  exception during validation.
79
801.23.1 (2018-11-01)
81-------------------
82
83### Bugfixes
84
85- Fixed a bug where working with containers created with a previous (< 1.23.0)
86  version of Compose would cause unexpected crashes
87
88- Fixed an issue where the behavior of the `--project-directory` flag would
89  vary depending on which subcommand was being used.
90
911.23.0 (2018-10-30)
92-------------------
93
94### Important note
95
96The default naming scheme for containers created by Compose in this version
97has changed from `<project>_<service>_<index>` to
98`<project>_<service>_<index>_<slug>`, where `<slug>` is a randomly-generated
99hexadecimal string. Please make sure to update scripts relying on the old
100naming scheme accordingly before upgrading.
101
102### Features
103
104- Logs for containers restarting after a crash will now appear in the output
105  of the `up` and `logs` commands.
106
107- Added `--hash` option to the `docker-compose config` command, allowing users
108  to print a hash string for each service's configuration to facilitate rolling
109  updates.
110
111- Added `--parallel` flag to the `docker-compose build` command, allowing
112  Compose to build up to 5 images simultaneously.
113
114- Output for the `pull` command now reports status / progress even when pulling
115  multiple images in parallel.
116
117- For images with multiple names, Compose will now attempt to match the one
118  present in the service configuration in the output of the `images` command.
119
120### Bugfixes
121
122- Parallel `run` commands for the same service will no longer fail due to name
123  collisions.
124
125- Fixed an issue where paths longer than 260 characters on Windows clients would
126  cause `docker-compose build` to fail.
127
128- Fixed a bug where attempting to mount `/var/run/docker.sock` with
129  Docker Desktop for Windows would result in failure.
130
131- The `--project-directory` option is now used by Compose to determine where to
132  look for the `.env` file.
133
134- `docker-compose build` no longer fails when attempting to pull an image with
135  credentials provided by the gcloud credential helper.
136
137- Fixed the `--exit-code-from` option in `docker-compose up` to always report
138  the actual exit code even when the watched container isn't the cause of the
139  exit.
140
141- Fixed an issue that would prevent recreating a service in some cases where
142  a volume would be mapped to the same mountpoint as a volume declared inside
143  the image's Dockerfile.
144
145- Fixed a bug that caused hash configuration with multiple networks to be
146  inconsistent, causing some services to be unnecessarily restarted.
147
148- Fixed a bug that would cause failures with variable substitution for services
149  with a name containing one or more dot characters
150
151- Fixed a pipe handling issue when using the containerized version of Compose.
152
153- Fixed a bug causing `external: false` entries in the Compose file to be
154  printed as `external: true` in the output of `docker-compose config`
155
156- Fixed a bug where issuing a `docker-compose pull` command on services
157  without a defined image key would cause Compose to crash
158
159- Volumes and binds are now mounted in the order they're declared in the
160  service definition
161
162### Miscellaneous
163
164- The `zsh` completion script has been updated with new options, and no
165  longer suggests container names where service names are expected.
166
1671.22.0 (2018-07-17)
168-------------------
169
170### Features
171
172#### Compose format version 3.7
173
174- Introduced version 3.7 of the `docker-compose.yml` specification.
175  This version requires Docker Engine 18.06.0 or above.
176
177- Added support for `rollback_config` in the deploy configuration
178
179- Added support for the `init` parameter in service configurations
180
181- Added support for extension fields in service, network, volume, secret,
182  and config configurations
183
184#### Compose format version 2.4
185
186- Added support for extension fields in service, network,
187  and volume configurations
188
189### Bugfixes
190
191- Fixed a bug that prevented deployment with some Compose files when
192  `DOCKER_DEFAULT_PLATFORM` was set
193
194- Compose will no longer try to create containers or volumes with
195  invalid starting characters
196
197- Fixed several bugs that prevented Compose commands from working properly
198  with containers created with an older version of Compose
199
200- Fixed an issue with the output of `docker-compose config` with the
201  `--compatibility-mode` flag enabled when the source file contains
202  attachable networks
203
204- Fixed a bug that prevented the `gcloud` credential store from working
205  properly when used with the Compose binary on UNIX
206
207- Fixed a bug that caused connection errors when trying to operate
208  over a non-HTTPS TCP connection on Windows
209
210- Fixed a bug that caused builds to fail on Windows if the Dockerfile
211  was located in a subdirectory of the build context
212
213- Fixed an issue that prevented proper parsing of UTF-8 BOM encoded
214  Compose files on Windows
215
216- Fixed an issue with handling of the double-wildcard (`**`) pattern in `.dockerignore` files when using `docker-compose build`
217
218- Fixed a bug that caused auth values in legacy `.dockercfg` files to be ignored
219- `docker-compose build` will no longer attempt to create image names starting with an invalid character
220
2211.21.2 (2018-05-03)
222-------------------
223
224### Bugfixes
225
226- Fixed a bug where the ip_range attribute in IPAM configs was prevented
227  from passing validation
228
2291.21.1 (2018-04-27)
230-------------------
231
232### Bugfixes
233
234- In 1.21.0, we introduced a change to how project names are sanitized for
235  internal use in resource names. This caused issues when manipulating an
236  existing, deployed application whose name had changed as a result.
237  This release properly detects resources using "legacy" naming conventions.
238
239- Fixed an issue where specifying an in-context Dockerfile using an absolute
240  path would fail despite being valid.
241
242- Fixed a bug where IPAM option changes were incorrectly detected, preventing
243  redeployments.
244
245- Validation of v2 files now properly checks the structure of IPAM configs.
246
247- Improved support for credentials stores on Windows to include binaries using
248  extensions other than `.exe`. The list of valid extensions is determined by
249  the contents of the `PATHEXT` environment variable.
250
251- Fixed a bug where Compose would generate invalid binds containing duplicate
252  elements with some v3.2 files, triggering errors at the Engine level during
253  deployment.
254
2551.21.0 (2018-04-10)
256-------------------
257
258### New features
259
260#### Compose file version 2.4
261
262- Introduced version 2.4 of the `docker-compose.yml` specification.
263  This version requires Docker Engine 17.12.0 or above.
264
265- Added support for the `platform` parameter in service definitions.
266  If supplied, the parameter is also used when performing build for the
267  service.
268
269#### Compose file version 2.2 and up
270
271- Added support for the `cpu_rt_period` and `cpu_rt_runtime` parameters
272  in service definitions (2.x only).
273
274#### Compose file version 2.1 and up
275
276- Added support for the `cpu_period` parameter in service definitions
277  (2.x only).
278
279- Added support for the `isolation` parameter in service build configurations.
280  Additionally, the `isolation` parameter is used for builds as well if no
281  `build.isolation` parameter is defined. (2.x only)
282
283#### All formats
284
285- Added support for the `--workdir` flag in `docker-compose exec`.
286
287- Added support for the `--compress` flag in `docker-compose build`.
288
289- `docker-compose pull` is now performed in parallel by default. You can
290  opt out using the `--no-parallel` flag. The `--parallel` flag is now
291  deprecated and will be removed in a future version.
292
293- Dashes and underscores in project names are no longer stripped out.
294
295- `docker-compose build` now supports the use of Dockerfile from outside
296  the build context.
297
298### Bugfixes
299
300- Compose now checks that the volume's configuration matches the remote
301  volume, and errors out if a mismatch is detected.
302
303- Fixed a bug that caused Compose to raise unexpected errors when attempting
304  to create several one-off containers in parallel.
305
306- Fixed a bug with argument parsing when using `docker-machine config` to
307  generate TLS flags for `exec` and `run` commands.
308
309- Fixed a bug where variable substitution with an empty default value
310  (e.g. `${VAR:-}`) would print an incorrect warning.
311
312- Improved resilience when encoding of the Compose file doesn't match the
313  system's. Users are encouraged to use UTF-8 when possible.
314
315- Fixed a bug where external overlay networks in Swarm would be incorrectly
316  recognized as inexistent by Compose, interrupting otherwise valid
317  operations.
318
3191.20.1 (2018-03-21)
320-------------------
321
322### Bugfixes
323
324- Fixed an issue where `docker-compose build` would error out if the
325  build context contained directory symlinks
326
3271.20.0 (2018-03-20)
328-------------------
329
330### New features
331
332#### Compose file version 3.6
333
334- Introduced version 3.6 of the `docker-compose.yml` specification.
335  This version requires Docker Engine 18.02.0 or above.
336
337- Added support for the `tmpfs.size` property in volume mappings
338
339#### Compose file version 3.2 and up
340
341- The `--build-arg` option can now be used without specifying a service
342  in `docker-compose build`
343
344#### Compose file version 2.3
345
346- Added support for `device_cgroup_rules` in service definitions
347
348- Added support for the `tmpfs.size` property in long-form volume mappings
349
350- The `--build-arg` option can now be used without specifying a service
351  in `docker-compose build`
352
353#### All formats
354
355- Added a `--log-level` option to the top-level `docker-compose` command.
356  Accepted values are `debug`, `info`, `warning`, `error`, `critical`.
357  Default log level is `info`
358
359- `docker-compose run` now allows users to unset the container's entrypoint
360
361- Proxy configuration found in the `~/.docker/config.json` file now populates
362  environment and build args for containers created by Compose
363
364- Added the `--use-aliases` flag to `docker-compose run`, indicating that
365  network aliases declared in the service's config should be used for the
366  running container
367
368- Added the `--include-deps` flag to `docker-compose pull`
369
370- `docker-compose run` now kills and removes the running container upon
371  receiving `SIGHUP`
372
373- `docker-compose ps` now shows the containers' health status if available
374
375- Added the long-form `--detach` option to the `exec`, `run` and `up`
376  commands
377
378### Bugfixes
379
380- Fixed `.dockerignore` handling, notably with regard to absolute paths
381  and last-line precedence rules
382
383- Fixed an issue where Compose would make costly DNS lookups when connecting
384  to the Engine when using Docker For Mac
385
386- Fixed a bug introduced in 1.19.0 which caused the default certificate path
387  to not be honored by Compose
388
389- Fixed a bug where Compose would incorrectly check whether a symlink's
390  destination was accessible when part of a build context
391
392- Fixed a bug where `.dockerignore` files containing lines of whitespace
393  caused Compose to error out on Windows
394
395- Fixed a bug where `--tls*` and `--host` options wouldn't be properly honored
396  for interactive `run` and `exec` commands
397
398- A `seccomp:<filepath>` entry in the `security_opt` config now correctly
399  sends the contents of the file to the engine
400
401- ANSI output for `up` and `down` operations should no longer affect the wrong
402  lines
403
404- Improved support for non-unicode locales
405
406- Fixed a crash occurring on Windows when the user's home directory name
407  contained non-ASCII characters
408
409- Fixed a bug occurring during builds caused by files with a negative `mtime`
410  values in the build context
411
412- Fixed an encoding bug when streaming build progress
413
4141.19.0 (2018-02-07)
415-------------------
416
417### Breaking changes
418
419- On UNIX platforms, interactive `run` and `exec` commands now require
420  the `docker` CLI to be installed on the client by default. To revert
421  to the previous behavior, users may set the `COMPOSE_INTERACTIVE_NO_CLI`
422  environment variable.
423
424### New features
425
426#### Compose file version 3.x
427
428- The output of the `config` command should now merge `deploy` options from
429  several Compose files in a more accurate manner
430
431#### Compose file version 2.3
432
433- Added support for the `runtime` option in service definitions
434
435#### Compose file version 2.1 and up
436
437- Added support for the `${VAR:?err}` and `${VAR?err}` variable interpolation
438  syntax to indicate mandatory variables
439
440#### Compose file version 2.x
441
442- Added `priority` key to service network mappings, allowing the user to
443  define in which order the specified service will connect to each network
444
445#### All formats
446
447- Added `--renew-anon-volumes` (shorthand `-V`) to the `up` command,
448  preventing Compose from recovering volume data from previous containers for
449  anonymous volumes
450
451- Added limit for number of simultaneous parallel operations, which should
452  prevent accidental resource exhaustion of the server. Default is 64 and
453  can be configured using the `COMPOSE_PARALLEL_LIMIT` environment variable
454
455- Added `--always-recreate-deps` flag to the `up` command to force recreating
456  dependent services along with the dependency owner
457
458- Added `COMPOSE_IGNORE_ORPHANS` environment variable to forgo orphan
459  container detection and suppress warnings
460
461- Added `COMPOSE_FORCE_WINDOWS_HOST` environment variable to force Compose
462  to parse volume definitions as if the Docker host was a Windows system,
463  even if Compose itself is currently running on UNIX
464
465- Bash completion should now be able to better differentiate between running,
466  stopped and paused services
467
468### Bugfixes
469
470- Fixed a bug that would cause the `build` command to report a connection
471  error when the build context contained unreadable files or FIFO objects.
472  These file types will now be handled appropriately
473
474- Fixed various issues around interactive `run`/`exec` sessions.
475
476- Fixed a bug where setting TLS options with environment and CLI flags
477  simultaneously would result in part of the configuration being ignored
478
479- Fixed a bug where the DOCKER_TLS_VERIFY environment variable was being
480  ignored by Compose
481
482- Fixed a bug where the `-d` and `--timeout` flags in `up` were erroneously
483  marked as incompatible
484
485- Fixed a bug where the recreation of a service would break if the image
486  associated with the previous container had been removed
487
488- Fixed a bug where updating a mount's target would break Compose when
489  trying to recreate the associated service
490
491- Fixed a bug where `tmpfs` volumes declared using the extended syntax in
492  Compose files using version 3.2 would be erroneously created as anonymous
493  volumes instead
494
495- Fixed a bug where type conversion errors would print a stacktrace instead
496  of exiting gracefully
497
498- Fixed some errors related to unicode handling
499
500- Dependent services no longer get recreated along with the dependency owner
501  if their configuration hasn't changed
502
503- Added better validation of `labels` fields in Compose files. Label values
504  containing scalar types (number, boolean) now get automatically converted
505  to strings
506
5071.18.0 (2017-12-15)
508-------------------
509
510### New features
511
512#### Compose file version 3.5
513
514- Introduced version 3.5 of the `docker-compose.yml` specification.
515  This version requires Docker Engine 17.06.0 or above
516
517- Added support for the `shm_size` parameter in build configurations
518
519- Added support for the `isolation` parameter in service definitions
520
521- Added support for custom names for network, secret and config definitions
522
523#### Compose file version 2.3
524
525- Added support for `extra_hosts` in build configuration
526
527- Added support for the [long syntax](https://docs.docker.com/compose/compose-file/#long-syntax-3) for volume entries, as previously introduced in the 3.2 format.
528  Note that using this syntax will create [mounts](https://docs.docker.com/engine/admin/volumes/bind-mounts/) instead of volumes.
529
530#### Compose file version 2.1 and up
531
532- Added support for the `oom_kill_disable` parameter in service definitions
533  (2.x only)
534
535- Added support for custom names for network definitions (2.x only)
536
537
538#### All formats
539
540- Values interpolated from the environment will now be converted to the
541  proper type when used in non-string fields.
542
543- Added support for `--label` in `docker-compose run`
544
545- Added support for `--timeout` in `docker-compose down`
546
547- Added support for `--memory` in `docker-compose build`
548
549- Setting `stop_grace_period` in service definitions now also sets the
550  container's `stop_timeout`
551
552### Bugfixes
553
554- Fixed an issue where Compose was still handling service hostname according
555  to legacy engine behavior, causing hostnames containing dots to be cut up
556
557- Fixed a bug where the `X-Y:Z` syntax for ports was considered invalid
558  by Compose
559
560- Fixed an issue with CLI logging causing duplicate messages and inelegant
561  output to occur
562
563- Fixed an issue that caused `stop_grace_period` to be ignored when using
564  multiple Compose files
565
566- Fixed a bug that caused `docker-compose images` to crash when using
567  untagged images
568
569- Fixed a bug where the valid `${VAR:-}` syntax would cause Compose to
570  error out
571
572- Fixed a bug where `env_file` entries using an UTF-8 BOM were being read
573  incorrectly
574
575- Fixed a bug where missing secret files would generate an empty directory
576  in their place
577
578- Fixed character encoding issues in the CLI's error handlers
579
580- Added validation for the `test` field in healthchecks
581
582- Added validation for the `subnet` field in IPAM configurations
583
584- Added validation for `volumes` properties when using the long syntax in
585  service definitions
586
587- The CLI now explicit prevents using `-d` and `--timeout` together
588  in `docker-compose up`
589
5901.17.1 (2017-11-08)
591------------------
592
593### Bugfixes
594
595- Fixed a bug that would prevent creating new containers when using
596  container labels in the list format as part of the service's definition.
597
5981.17.0 (2017-11-02)
599-------------------
600
601### New features
602
603#### Compose file version 3.4
604
605- Introduced version 3.4 of the `docker-compose.yml` specification.
606  This version requires to be used with Docker Engine 17.06.0 or above.
607
608- Added support for `cache_from`, `network` and `target` options in build
609  configurations
610
611- Added support for the `order` parameter in the `update_config` section
612
613- Added support for setting a custom name in volume definitions using
614  the `name` parameter
615
616#### Compose file version 2.3
617
618- Added support for `shm_size` option in build configuration
619
620#### Compose file version 2.x
621
622- Added support for extension fields (`x-*`). Also available for v3.4 files
623
624#### All formats
625
626- Added new `--no-start` to the `up` command, allowing users to create all
627  resources (networks, volumes, containers) without starting services.
628  The `create` command is deprecated in favor of this new option
629
630### Bugfixes
631
632- Fixed a bug where `extra_hosts` values would be overridden by extension
633  files instead of merging together
634
635- Fixed a bug where the validation for v3.2 files would prevent using the
636  `consistency` field in service volume definitions
637
638- Fixed a bug that would cause a crash when configuration fields expecting
639  unique items would contain duplicates
640
641- Fixed a bug where mount overrides with a different mode would create a
642  duplicate entry instead of overriding the original entry
643
644- Fixed a bug where build labels declared as a list wouldn't be properly
645  parsed
646
647- Fixed a bug where the output of `docker-compose config` would be invalid
648  for some versions if the file contained custom-named external volumes
649
650- Improved error handling when issuing a build command on Windows using an
651  unsupported file version
652
653- Fixed an issue where networks with identical names would sometimes be
654  created when running `up` commands concurrently.
655
6561.16.1 (2017-09-01)
657-------------------
658
659### Bugfixes
660
661- Fixed bug that prevented using `extra_hosts` in several configuration files.
662
6631.16.0 (2017-08-31)
664-------------------
665
666### New features
667
668#### Compose file version 2.3
669
670- Introduced version 2.3 of the `docker-compose.yml` specification.
671  This version requires to be used with Docker Engine 17.06.0 or above.
672
673- Added support for the `target` parameter in build configurations
674
675- Added support for the `start_period` parameter in healthcheck
676  configurations
677
678#### Compose file version 2.x
679
680- Added support for the `blkio_config` parameter in service definitions
681
682- Added support for setting a custom name in volume definitions using
683  the `name` parameter (not available for version 2.0)
684
685#### All formats
686
687- Added new CLI flag `--no-ansi` to suppress ANSI control characters in
688  output
689
690### Bugfixes
691
692- Fixed a bug where nested `extends` instructions weren't resolved
693  properly, causing "file not found" errors
694
695- Fixed several issues with `.dockerignore` parsing
696
697- Fixed issues where logs of TTY-enabled services were being printed
698  incorrectly and causing `MemoryError` exceptions
699
700- Fixed a bug where printing application logs would sometimes be interrupted
701  by a `UnicodeEncodeError` exception on Python 3
702
703- The `$` character in the output of `docker-compose config` is now
704  properly escaped
705
706- Fixed a bug where running `docker-compose top` would sometimes fail
707  with an uncaught exception
708
709- Fixed a bug where `docker-compose pull` with the `--parallel` flag
710  would return a `0` exit code when failing
711
712- Fixed an issue where keys in `deploy.resources` were not being validated
713
714- Fixed an issue where the `logging` options in the output of
715  `docker-compose config` would be set to `null`, an invalid value
716
717- Fixed the output of the `docker-compose images` command when an image
718  would come from a private repository using an explicit port number
719
720- Fixed the output of `docker-compose config` when a port definition used
721  `0` as the value for the published port
722
7231.15.0 (2017-07-26)
724-------------------
725
726### New features
727
728#### Compose file version 2.2
729
730- Added support for the `network` parameter in build configurations.
731
732#### Compose file version 2.1 and up
733
734- The `pid` option in a service's definition now supports a `service:<name>`
735  value.
736
737- Added support for the `storage_opt` parameter in in service definitions.
738  This option is not available for the v3 format
739
740#### All formats
741
742- Added `--quiet` flag to `docker-compose pull`, suppressing progress output
743
744- Some improvements to CLI output
745
746### Bugfixes
747
748- Volumes specified through the `--volume` flag of `docker-compose run` now
749  complement volumes declared in the service's definition instead of replacing
750  them
751
752- Fixed a bug where using multiple Compose files would unset the scale value
753  defined inside the Compose file.
754
755- Fixed an issue where the `credHelpers` entries in the `config.json` file
756  were not being honored by Compose
757
758- Fixed a bug where using multiple Compose files with port declarations
759  would cause failures in Python 3 environments
760
761- Fixed a bug where some proxy-related options present in the user's
762  environment would prevent Compose from running
763
764- Fixed an issue where the output of `docker-compose config` would be invalid
765  if the original file used `Y` or `N` values
766
767- Fixed an issue preventing `up` operations on a previously created stack on
768  Windows Engine.
769
7701.14.0 (2017-06-19)
771-------------------
772
773### New features
774
775#### Compose file version 3.3
776
777- Introduced version 3.3 of the `docker-compose.yml` specification.
778  This version requires to be used with Docker Engine 17.06.0 or above.
779  Note: the `credential_spec` and `configs` keys only apply to Swarm services
780  and will be ignored by Compose
781
782#### Compose file version 2.2
783
784- Added the following parameters in service definitions: `cpu_count`,
785  `cpu_percent`, `cpus`
786
787#### Compose file version 2.1
788
789- Added support for build labels. This feature is also available in the
790  2.2 and 3.3 formats.
791
792#### All formats
793
794- Added shorthand `-u` for `--user` flag in `docker-compose exec`
795
796- Differences in labels between the Compose file and remote network
797  will now print a warning instead of preventing redeployment.
798
799### Bugfixes
800
801- Fixed a bug where service's dependencies were being rescaled to their
802  default scale when running a `docker-compose run` command
803
804- Fixed a bug where `docker-compose rm` with the `--stop` flag was not
805  behaving properly when provided with a list of services to remove
806
807- Fixed a bug where `cache_from` in the build section would be ignored when
808  using more than one Compose file.
809
810- Fixed a bug that prevented binding the same port to different IPs when
811  using more than one Compose file.
812
813- Fixed a bug where override files would not be picked up by Compose if they
814  had the `.yaml` extension
815
816- Fixed a bug on Windows Engine where networks would be incorrectly flagged
817  for recreation
818
819- Fixed a bug where services declaring ports would cause crashes on some
820  versions of Python 3
821
822- Fixed a bug where the output of `docker-compose config` would sometimes
823  contain invalid port definitions
824
8251.13.0 (2017-05-02)
826-------------------
827
828### Breaking changes
829
830- `docker-compose up` now resets a service's scaling to its default value.
831  You can use the newly introduced `--scale` option to specify a custom
832  scale value
833
834### New features
835
836#### Compose file version 2.2
837
838- Introduced version 2.2 of the `docker-compose.yml` specification. This
839  version requires to be used with Docker Engine 1.13.0 or above
840
841- Added support for `init` in service definitions.
842
843- Added support for `scale` in service definitions. The configuration's value
844  can be overridden using the `--scale` flag in `docker-compose up`.
845  Please note that the `scale` command is disabled for this file format
846
847#### Compose file version 2.x
848
849- Added support for `options` in the `ipam` section of network definitions
850
851### Bugfixes
852
853- Fixed a bug where paths provided to compose via the `-f` option were not
854  being resolved properly
855
856- Fixed a bug where the `ext_ip::target_port` notation in the ports section
857  was incorrectly marked as invalid
858
859- Fixed an issue where the `exec` command would sometimes not return control
860  to the terminal when using the `-d` flag
861
862- Fixed a bug where secrets were missing from the output of the `config`
863  command for v3.2 files
864
865- Fixed an issue where `docker-compose` would hang if no internet connection
866  was available
867
868- Fixed an issue where paths containing unicode characters passed via the `-f`
869  flag were causing Compose to crash
870
871- Fixed an issue where the output of `docker-compose config` would be invalid
872  if the Compose file contained external secrets
873
874- Fixed a bug where using `--exit-code-from` with `up` would fail if Compose
875  was installed in a Python 3 environment
876
877- Fixed a bug where recreating containers using a combination of `tmpfs` and
878  `volumes` would result in an invalid config state
879
880
8811.12.0 (2017-04-04)
882-------------------
883
884### New features
885
886#### Compose file version 3.2
887
888- Introduced version 3.2 of the `docker-compose.yml` specification
889
890- Added support for `cache_from` in the `build` section of services
891
892- Added support for the new expanded ports syntax in service definitions
893
894- Added support for the new expanded volumes syntax in service definitions
895
896#### Compose file version 2.1
897
898- Added support for `pids_limit` in service definitions
899
900#### Compose file version 2.0 and up
901
902- Added `--volumes` option to `docker-compose config` that lists named
903  volumes declared for that project
904
905- Added support for `mem_reservation` in service definitions (2.x only)
906
907- Added support for `dns_opt` in service definitions (2.x only)
908
909#### All formats
910
911- Added a new `docker-compose images` command that lists images used by
912  the current project's containers
913
914- Added a `--stop` (shorthand `-s`) option to `docker-compose rm` that stops
915  the running containers before removing them
916
917- Added a `--resolve-image-digests` option to `docker-compose config` that
918  pins the image version for each service to a permanent digest
919
920- Added a `--exit-code-from SERVICE` option to `docker-compose up`. When
921  used, `docker-compose` will exit on any container's exit with the code
922  corresponding to the specified service's exit code
923
924- Added a `--parallel` option to `docker-compose pull` that enables images
925  for multiple services to be pulled simultaneously
926
927- Added a `--build-arg` option to `docker-compose build`
928
929- Added a `--volume <volume_mapping>` (shorthand `-v`) option to
930  `docker-compose run` to declare runtime volumes to be mounted
931
932- Added a `--project-directory PATH` option to `docker-compose` that will
933  affect path resolution for the project
934
935- When using `--abort-on-container-exit` in `docker-compose up`, the exit
936  code for the container that caused the abort will be the exit code of
937  the `docker-compose up` command
938
939- Users can now configure which path separator character they want to use
940  to separate the `COMPOSE_FILE` environment value using the
941  `COMPOSE_PATH_SEPARATOR` environment variable
942
943- Added support for port range to single port in port mappings
944  (e.g. `8000-8010:80`)
945
946### Bugfixes
947
948- `docker-compose run --rm` now removes anonymous volumes after execution,
949  matching the behavior of `docker run --rm`.
950
951- Fixed a bug where override files containing port lists would cause a
952  TypeError to be raised
953
954- Fixed a bug where the `deploy` key would be missing from the output of
955  `docker-compose config`
956
957- Fixed a bug where scaling services up or down would sometimes re-use
958  obsolete containers
959
960- Fixed a bug where the output of `docker-compose config` would be invalid
961  if the project declared anonymous volumes
962
963- Variable interpolation now properly occurs in the `secrets` section of
964  the Compose file
965
966- The `secrets` section now properly appears in the output of
967  `docker-compose config`
968
969- Fixed a bug where changes to some networks properties would not be
970  detected against previously created networks
971
972- Fixed a bug where `docker-compose` would crash when trying to write into
973  a closed pipe
974
975- Fixed an issue where Compose would not pick up on the value of
976  COMPOSE_TLS_VERSION when used in combination with command-line TLS flags
977
9781.11.2 (2017-02-17)
979-------------------
980
981### Bugfixes
982
983- Fixed a bug that was preventing secrets configuration from being
984  loaded properly
985
986- Fixed a bug where the `docker-compose config` command would fail
987  if the config file contained secrets definitions
988
989- Fixed an issue where Compose on some linux distributions would
990  pick up and load an outdated version of the requests library
991
992- Fixed an issue where socket-type files inside a build folder
993  would cause `docker-compose` to crash when trying to build that
994  service
995
996- Fixed an issue where recursive wildcard patterns `**` were not being
997  recognized in `.dockerignore` files.
998
9991.11.1 (2017-02-09)
1000-------------------
1001
1002### Bugfixes
1003
1004- Fixed a bug where the 3.1 file format was not being recognized as valid
1005  by the Compose parser
1006
10071.11.0 (2017-02-08)
1008-------------------
1009
1010### New Features
1011
1012#### Compose file version 3.1
1013
1014- Introduced version 3.1 of the `docker-compose.yml` specification. This
1015  version requires Docker Engine 1.13.0 or above. It introduces support
1016  for secrets. See the documentation for more information
1017
1018#### Compose file version 2.0 and up
1019
1020- Introduced the `docker-compose top` command that displays processes running
1021  for the different services managed by Compose.
1022
1023### Bugfixes
1024
1025- Fixed a bug where extending a service defining a healthcheck dictionary
1026  would cause `docker-compose` to error out.
1027
1028- Fixed an issue where the `pid` entry in a service definition was being
1029  ignored when using multiple Compose files.
1030
10311.10.1 (2017-02-01)
1032------------------
1033
1034### Bugfixes
1035
1036- Fixed an issue where presence of older versions of the docker-py
1037  package would cause unexpected crashes while running Compose
1038
1039- Fixed an issue where healthcheck dependencies would be lost when
1040  using multiple compose files for a project
1041
1042- Fixed a few issues that made the output of the `config` command
1043  invalid
1044
1045- Fixed an issue where adding volume labels to v3 Compose files would
1046  result in an error
1047
1048- Fixed an issue on Windows where build context paths containing unicode
1049  characters were being improperly encoded
1050
1051- Fixed a bug where Compose would occasionally crash while streaming logs
1052  when containers would stop or restart
1053
10541.10.0 (2017-01-18)
1055-------------------
1056
1057### New Features
1058
1059#### Compose file version 3.0
1060
1061- Introduced version 3.0 of the `docker-compose.yml` specification. This
1062  version requires to be used with Docker Engine 1.13 or above and is
1063  specifically designed to work with the `docker stack` commands.
1064
1065#### Compose file version 2.1 and up
1066
1067- Healthcheck configuration can now be done in the service definition using
1068  the `healthcheck` parameter
1069
1070- Containers dependencies can now be set up to wait on positive healthchecks
1071  when declared using `depends_on`. See the documentation for the updated
1072  syntax.
1073  **Note:** This feature will not be ported to version 3 Compose files.
1074
1075- Added support for the `sysctls` parameter in service definitions
1076
1077- Added support for the `userns_mode` parameter in service definitions
1078
1079- Compose now adds identifying labels to networks and volumes it creates
1080
1081#### Compose file version 2.0 and up
1082
1083- Added support for the `stop_grace_period` option in service definitions.
1084
1085### Bugfixes
1086
1087- Colored output now works properly on Windows.
1088
1089- Fixed a bug where docker-compose run would fail to set up link aliases
1090  in interactive mode on Windows.
1091
1092- Networks created by Compose are now always made attachable
1093  (Compose files v2.1 and up).
1094
1095- Fixed a bug where falsy values of `COMPOSE_CONVERT_WINDOWS_PATHS`
1096  (`0`, `false`, empty value) were being interpreted as true.
1097
1098- Fixed a bug where forward slashes in some .dockerignore patterns weren't
1099  being parsed correctly on Windows
1100
1101
11021.9.0 (2016-11-16)
1103-----------------
1104
1105**Breaking changes**
1106
1107- When using Compose with Docker Toolbox/Machine on Windows, volume paths are
1108  no longer converted from `C:\Users` to `/c/Users`-style by default. To
1109  re-enable this conversion so that your volumes keep working, set the
1110  environment variable `COMPOSE_CONVERT_WINDOWS_PATHS=1`. Users of
1111  Docker for Windows are not affected and do not need to set the variable.
1112
1113New Features
1114
1115- Interactive mode for `docker-compose run` and `docker-compose exec` is
1116  now supported on Windows platforms. Please note that the `docker` binary
1117  is required to be present on the system for this feature to work.
1118
1119- Introduced version 2.1 of the `docker-compose.yml` specification. This
1120  version requires to be used with Docker Engine 1.12 or above.
1121    - Added support for setting volume labels and network labels in
1122  `docker-compose.yml`.
1123    - Added support for the `isolation` parameter in service definitions.
1124    - Added support for link-local IPs in the service networks definitions.
1125    - Added support for shell-style inline defaults in variable interpolation.
1126      The supported forms are `${FOO-default}` (fall back if FOO is unset) and
1127      `${FOO:-default}` (fall back if FOO is unset or empty).
1128
1129- Added support for the `group_add` and `oom_score_adj` parameters in
1130  service definitions.
1131
1132- Added support for the `internal` and `enable_ipv6` parameters in network
1133  definitions.
1134
1135- Compose now defaults to using the `npipe` protocol on Windows.
1136
1137- Overriding a `logging` configuration will now properly merge the `options`
1138  mappings if the `driver` values do not conflict.
1139
1140Bug Fixes
1141
1142- Fixed several bugs related to `npipe` protocol support on Windows.
1143
1144- Fixed an issue with Windows paths being incorrectly converted when
1145  using Docker on Windows Server.
1146
1147- Fixed a bug where an empty `restart` value would sometimes result in an
1148  exception being raised.
1149
1150- Fixed an issue where service logs containing unicode characters would
1151  sometimes cause an error to occur.
1152
1153- Fixed a bug where unicode values in environment variables would sometimes
1154  raise a unicode exception when retrieved.
1155
1156- Fixed an issue where Compose would incorrectly detect a configuration
1157  mismatch for overlay networks.
1158
1159
11601.8.1 (2016-09-22)
1161-----------------
1162
1163Bug Fixes
1164
1165- Fixed a bug where users using a credentials store were not able
1166  to access their private images.
1167
1168- Fixed a bug where users using identity tokens to authenticate
1169  were not able to access their private images.
1170
1171- Fixed a bug where an `HttpHeaders` entry in the docker configuration
1172  file would cause Compose to crash when trying to build an image.
1173
1174- Fixed a few bugs related to the handling of Windows paths in volume
1175  binding declarations.
1176
1177- Fixed a bug where Compose would sometimes crash while trying to
1178  read a streaming response from the engine.
1179
1180- Fixed an issue where Compose would crash when encountering an API error
1181  while streaming container logs.
1182
1183- Fixed an issue where Compose would erroneously try to output logs from
1184  drivers not handled by the Engine's API.
1185
1186- Fixed a bug where options from the `docker-machine config` command would
1187  not be properly interpreted by Compose.
1188
1189- Fixed a bug where the connection to the Docker Engine would
1190  sometimes fail when running a large number of services simultaneously.
1191
1192- Fixed an issue where Compose would sometimes print a misleading
1193  suggestion message when running the `bundle` command.
1194
1195- Fixed a bug where connection errors would not be handled properly by
1196  Compose during the project initialization phase.
1197
1198- Fixed a bug where a misleading error would appear when encountering
1199  a connection timeout.
1200
1201
12021.8.0 (2016-06-14)
1203-----------------
1204
1205**Breaking Changes**
1206
1207- As announced in 1.7.0, `docker-compose rm` now removes containers
1208  created by `docker-compose run` by default.
1209
1210- Setting `entrypoint` on a service now empties out any default
1211  command that was set on the image (i.e. any `CMD` instruction in the
1212  Dockerfile used to build it). This makes it consistent with
1213  the `--entrypoint` flag to `docker run`.
1214
1215New Features
1216
1217- Added `docker-compose bundle`, a command that builds a bundle file
1218  to be consumed by the new *Docker Stack* commands in Docker 1.12.
1219
1220- Added `docker-compose push`, a command that pushes service images
1221  to a registry.
1222
1223- Compose now supports specifying a custom TLS version for
1224  interaction with the Docker Engine using the `COMPOSE_TLS_VERSION`
1225  environment variable.
1226
1227Bug Fixes
1228
1229- Fixed a bug where Compose would erroneously try to read `.env`
1230  at the project's root when it is a directory.
1231
1232- `docker-compose run -e VAR` now passes `VAR` through from the shell
1233  to the container, as with `docker run -e VAR`.
1234
1235- Improved config merging when multiple compose files are involved
1236  for several service sub-keys.
1237
1238- Fixed a bug where volume mappings containing Windows drives would
1239  sometimes be parsed incorrectly.
1240
1241- Fixed a bug in Windows environment where volume mappings of the
1242  host's root directory would be parsed incorrectly.
1243
1244- Fixed a bug where `docker-compose config` would output an invalid
1245  Compose file if external networks were specified.
1246
1247- Fixed an issue where unset buildargs would be assigned a string
1248  containing `'None'` instead of the expected empty value.
1249
1250- Fixed a bug where yes/no prompts on Windows would not show before
1251  receiving input.
1252
1253- Fixed a bug where trying to `docker-compose exec` on Windows
1254  without the `-d` option would exit with a stacktrace. This will
1255  still fail for the time being, but should do so gracefully.
1256
1257- Fixed a bug where errors during `docker-compose up` would show
1258  an unrelated stacktrace at the end of the process.
1259
1260- `docker-compose create` and `docker-compose start` show more
1261  descriptive error messages when something goes wrong.
1262
1263
12641.7.1 (2016-05-04)
1265-----------------
1266
1267Bug Fixes
1268
1269- Fixed a bug where the output of `docker-compose config` for v1 files
1270  would be an invalid configuration file.
1271
1272- Fixed a bug where `docker-compose config` would not check the validity
1273  of links.
1274
1275- Fixed an issue where `docker-compose help` would not output a list of
1276  available commands and generic options as expected.
1277
1278- Fixed an issue where filtering by service when using `docker-compose logs`
1279  would not apply for newly created services.
1280
1281- Fixed a bug where unchanged services would sometimes be recreated in
1282  in the up phase when using Compose with Python 3.
1283
1284- Fixed an issue where API errors encountered during the up phase would
1285  not be recognized as a failure state by Compose.
1286
1287- Fixed a bug where Compose would raise a NameError because of an undefined
1288  exception name on non-Windows platforms.
1289
1290- Fixed a bug where the wrong version of `docker-py` would sometimes be
1291  installed alongside Compose.
1292
1293- Fixed a bug where the host value output by `docker-machine config default`
1294  would not be recognized as valid options by the `docker-compose`
1295  command line.
1296
1297- Fixed an issue where Compose would sometimes exit unexpectedly  while
1298  reading events broadcasted by a Swarm cluster.
1299
1300- Corrected a statement in the docs about the location of the `.env` file,
1301  which is indeed read from the current directory, instead of in the same
1302  location as the Compose file.
1303
1304
13051.7.0 (2016-04-13)
1306------------------
1307
1308**Breaking Changes**
1309
1310-   `docker-compose logs` no longer follows log output by default. It now
1311    matches the behaviour of `docker logs` and exits after the current logs
1312    are printed. Use `-f` to get the old default behaviour.
1313
1314-   Booleans are no longer allows as values for mappings in the Compose file
1315    (for keys `environment`, `labels` and `extra_hosts`). Previously this
1316    was a warning. Boolean values should be quoted so they become string values.
1317
1318New Features
1319
1320-   Compose now looks for a `.env` file in the directory where it's run and
1321    reads any environment variables defined inside, if they're not already
1322    set in the shell environment. This lets you easily set defaults for
1323    variables used in the Compose file, or for any of the `COMPOSE_*` or
1324    `DOCKER_*` variables.
1325
1326-   Added a `--remove-orphans` flag to both `docker-compose up` and
1327    `docker-compose down` to remove containers for services that were removed
1328    from the Compose file.
1329
1330-   Added a `--all` flag to `docker-compose rm` to include containers created
1331    by `docker-compose run`. This will become the default behavior in the next
1332    version of Compose.
1333
1334-   Added support for all the same TLS configuration flags used by the `docker`
1335    client: `--tls`, `--tlscert`, `--tlskey`, etc.
1336
1337-   Compose files now support the `tmpfs` and `shm_size` options.
1338
1339-   Added the `--workdir` flag to `docker-compose run`
1340
1341-   `docker-compose logs` now shows logs for new containers that are created
1342    after it starts.
1343
1344-   The `COMPOSE_FILE` environment variable can now contain multiple files,
1345    separated by the host system's standard path separator (`:` on Mac/Linux,
1346    `;` on Windows).
1347
1348-   You can now specify a static IP address when connecting a service to a
1349    network with the `ipv4_address` and `ipv6_address` options.
1350
1351-   Added `--follow`, `--timestamp`, and `--tail` flags to the
1352    `docker-compose logs` command.
1353
1354-   `docker-compose up`, and `docker-compose start` will now start containers
1355    in parallel where possible.
1356
1357-   `docker-compose stop` now stops containers in reverse dependency order
1358    instead of all at once.
1359
1360-   Added the `--build` flag to `docker-compose up` to force it to build a new
1361    image. It now shows a warning if an image is automatically built when the
1362    flag is not used.
1363
1364-   Added the `docker-compose exec` command for executing a process in a running
1365    container.
1366
1367
1368Bug Fixes
1369
1370-   `docker-compose down` now removes containers created by
1371    `docker-compose run`.
1372
1373-   A more appropriate error is shown when a timeout is hit during `up` when
1374    using a tty.
1375
1376-   Fixed a bug in `docker-compose down` where it would abort if some resources
1377    had already been removed.
1378
1379-   Fixed a bug where changes to network aliases would not trigger a service
1380    to be recreated.
1381
1382-   Fix a bug where a log message was printed about creating a new volume
1383    when it already existed.
1384
1385-   Fixed a bug where interrupting `up` would not always shut down containers.
1386
1387-   Fixed a bug where `log_opt` and `log_driver` were not properly carried over
1388    when extending services in the v1 Compose file format.
1389
1390-   Fixed a bug where empty values for build args would cause file validation
1391    to fail.
1392
13931.6.2 (2016-02-23)
1394------------------
1395
1396-   Fixed a bug where connecting to a TLS-enabled Docker Engine would fail with
1397    a certificate verification error.
1398
13991.6.1 (2016-02-23)
1400------------------
1401
1402Bug Fixes
1403
1404-   Fixed a bug where recreating a container multiple times would cause the
1405    new container to be started without the previous volumes.
1406
1407-   Fixed a bug where Compose would set the value of unset environment variables
1408    to an empty string, instead of a key without a value.
1409
1410-   Provide a better error message when Compose requires a more recent version
1411    of the Docker API.
1412
1413-   Add a missing config field `network.aliases` which allows setting a network
1414    scoped alias for a service.
1415
1416-   Fixed a bug where `run` would not start services listed in `depends_on`.
1417
1418-   Fixed a bug where `networks` and `network_mode` where not merged when using
1419    extends or multiple Compose files.
1420
1421-   Fixed a bug with service aliases where the short container id alias was
1422    only contained 10 characters, instead of the 12 characters used in previous
1423    versions.
1424
1425-   Added a missing log message when creating a new named volume.
1426
1427-   Fixed a bug where `build.args` was not merged when using `extends` or
1428    multiple Compose files.
1429
1430-   Fixed some bugs with config validation when null values or incorrect types
1431    were used instead of a mapping.
1432
1433-   Fixed a bug where a `build` section without a `context` would show a stack
1434    trace instead of a helpful validation message.
1435
1436-   Improved compatibility with swarm by only setting a container affinity to
1437    the previous instance of a services' container when the service uses an
1438    anonymous container volume. Previously the affinity was always set on all
1439    containers.
1440
1441-   Fixed the validation of some `driver_opts` would cause an error if a number
1442    was used instead of a string.
1443
1444-   Some improvements to the `run.sh` script used by the Compose container install
1445    option.
1446
1447-   Fixed a bug with `up --abort-on-container-exit` where Compose would exit,
1448    but would not stop other containers.
1449
1450-   Corrected the warning message that is printed when a boolean value is used
1451    as a value in a mapping.
1452
1453
14541.6.0 (2016-01-15)
1455------------------
1456
1457Major Features:
1458
1459-   Compose 1.6 introduces a new format for `docker-compose.yml` which lets
1460    you define networks and volumes in the Compose file as well as services. It
1461    also makes a few changes to the structure of some configuration options.
1462
1463    You don't have to use it - your existing Compose files will run on Compose
1464    1.6 exactly as they do today.
1465
1466    Check the upgrade guide for full details:
1467    https://docs.docker.com/compose/compose-file#upgrading
1468
1469-   Support for networking has exited experimental status and is the recommended
1470    way to enable communication between containers.
1471
1472    If you use the new file format, your app will use networking. If you aren't
1473    ready yet, just leave your Compose file as it is and it'll continue to work
1474    just the same.
1475
1476    By default, you don't have to configure any networks. In fact, using
1477    networking with Compose involves even less configuration than using links.
1478    Consult the networking guide for how to use it:
1479    https://docs.docker.com/compose/networking
1480
1481    The experimental flags `--x-networking` and `--x-network-driver`, introduced
1482    in Compose 1.5, have been removed.
1483
1484-   You can now pass arguments to a build if you're using the new file format:
1485
1486        build:
1487          context: .
1488          args:
1489            buildno: 1
1490
1491-   You can now specify both a `build` and an `image` key if you're using the
1492    new file format. `docker-compose build` will build the image and tag it with
1493    the name you've specified, while `docker-compose pull` will attempt to pull
1494    it.
1495
1496-   There's a new `events` command for monitoring container events from
1497    the application, much like `docker events`. This is a good primitive for
1498    building tools on top of Compose for performing actions when particular
1499    things happen, such as containers starting and stopping.
1500
1501-   There's a new `depends_on` option for specifying dependencies between
1502    services. This enforces the order of startup, and ensures that when you run
1503    `docker-compose up SERVICE` on a service with dependencies, those are started
1504    as well.
1505
1506New Features:
1507
1508-   Added a new command `config` which validates and prints the Compose
1509    configuration after interpolating variables, resolving relative paths, and
1510    merging multiple files and `extends`.
1511
1512-   Added a new command `create` for creating containers without starting them.
1513
1514-   Added a new command `down` to stop and remove all the resources created by
1515    `up` in a single command.
1516
1517-   Added support for the `cpu_quota` configuration option.
1518
1519-   Added support for the `stop_signal` configuration option.
1520
1521-   Commands `start`, `restart`, `pause`, and `unpause` now exit with an
1522    error status code if no containers were modified.
1523
1524-   Added a new `--abort-on-container-exit` flag to `up` which causes `up` to
1525    stop all container and exit once the first container exits.
1526
1527-   Removed support for `FIG_FILE`, `FIG_PROJECT_NAME`, and no longer reads
1528    `fig.yml` as a default Compose file location.
1529
1530-   Removed the `migrate-to-labels` command.
1531
1532-   Removed the `--allow-insecure-ssl` flag.
1533
1534
1535Bug Fixes:
1536
1537-   Fixed a validation bug that prevented the use of a range of ports in
1538    the `expose` field.
1539
1540-   Fixed a validation bug that prevented the use of arrays in the `entrypoint`
1541    field if they contained duplicate entries.
1542
1543-   Fixed a bug that caused `ulimits` to be ignored when used with `extends`.
1544
1545-   Fixed a bug that prevented ipv6 addresses in `extra_hosts`.
1546
1547-   Fixed a bug that caused `extends` to be ignored when included from
1548    multiple Compose files.
1549
1550-   Fixed an incorrect warning when a container volume was defined in
1551    the Compose file.
1552
1553-   Fixed a bug that prevented the force shutdown behaviour of `up` and
1554    `logs`.
1555
1556-   Fixed a bug that caused `None` to be printed as the network driver name
1557    when the default network driver was used.
1558
1559-   Fixed a bug where using the string form of `dns` or `dns_search` would
1560    cause an error.
1561
1562-   Fixed a bug where a container would be reported as "Up" when it was
1563    in the restarting state.
1564
1565-   Fixed a confusing error message when DOCKER_CERT_PATH was not set properly.
1566
1567-   Fixed a bug where attaching to a container would fail if it was using a
1568    non-standard logging driver (or none at all).
1569
1570
15711.5.2 (2015-12-03)
1572------------------
1573
1574-   Fixed a bug which broke the use of `environment` and `env_file` with
1575    `extends`, and caused environment keys without values to have a `None`
1576    value, instead of a value from the host environment.
1577
1578-   Fixed a regression in 1.5.1 that caused a warning about volumes to be
1579    raised incorrectly when containers were recreated.
1580
1581-   Fixed a bug which prevented building a `Dockerfile` that used `ADD <url>`
1582
1583-   Fixed a bug with `docker-compose restart` which prevented it from
1584    starting stopped containers.
1585
1586-   Fixed handling of SIGTERM and SIGINT to properly stop containers
1587
1588-   Add support for using a url as the value of `build`
1589
1590-   Improved the validation of the `expose` option
1591
1592
15931.5.1 (2015-11-12)
1594------------------
1595
1596-   Add the `--force-rm` option to `build`.
1597
1598-   Add the `ulimit` option for services in the Compose file.
1599
1600-   Fixed a bug where `up` would error with "service needs to be built" if
1601    a service changed from using `image` to using `build`.
1602
1603-   Fixed a bug that would cause incorrect output of parallel operations
1604    on some terminals.
1605
1606-   Fixed a bug that prevented a container from being recreated when the
1607    mode of a `volumes_from` was changed.
1608
1609-   Fixed a regression in 1.5.0 where non-utf-8 unicode characters would cause
1610    `up` or `logs` to crash.
1611
1612-   Fixed a regression in 1.5.0 where Compose would use a success exit status
1613    code when a command fails due to an HTTP timeout communicating with the
1614    docker daemon.
1615
1616-   Fixed a regression in 1.5.0 where `name` was being accepted as a valid
1617    service option which would override the actual name of the service.
1618
1619-   When using `--x-networking` Compose no longer sets the hostname to the
1620    container name.
1621
1622-   When using `--x-networking` Compose will only create the default network
1623    if at least one container is using the network.
1624
1625-   When printings logs during `up` or `logs`, flush the output buffer after
1626    each line to prevent buffering issues from hiding logs.
1627
1628-   Recreate a container if one of its dependencies is being created.
1629    Previously a container was only recreated if it's dependencies already
1630    existed, but were being recreated as well.
1631
1632-   Add a warning when a `volume` in the Compose file is being ignored
1633    and masked by a container volume from a previous container.
1634
1635-   Improve the output of `pull` when run without a tty.
1636
1637-   When using multiple Compose files, validate each before attempting to merge
1638    them together. Previously invalid files would result in not helpful errors.
1639
1640-   Allow dashes in keys in the `environment` service option.
1641
1642-   Improve validation error messages by including the filename as part of the
1643    error message.
1644
1645
16461.5.0 (2015-11-03)
1647------------------
1648
1649**Breaking changes:**
1650
1651With the introduction of variable substitution support in the Compose file, any
1652Compose file that uses an environment variable (`$VAR` or `${VAR}`) in the `command:`
1653or `entrypoint:` field will break.
1654
1655Previously these values were interpolated inside the container, with a value
1656from the container environment.  In Compose 1.5.0, the values will be
1657interpolated on the host, with a value from the host environment.
1658
1659To migrate a Compose file to 1.5.0, escape the variables with an extra `$`
1660(ex: `$$VAR` or `$${VAR}`).  See
1661https://github.com/docker/compose/blob/8cc8e61/docs/compose-file.md#variable-substitution
1662
1663Major features:
1664
1665-   Compose is now available for Windows.
1666
1667-   Environment variables can be used in the Compose file. See
1668    https://github.com/docker/compose/blob/8cc8e61/docs/compose-file.md#variable-substitution
1669
1670-   Multiple compose files can be specified, allowing you to override
1671    settings in the default Compose file. See
1672    https://github.com/docker/compose/blob/8cc8e61/docs/reference/docker-compose.md
1673    for more details.
1674
1675-   Compose now produces better error messages when a file contains
1676    invalid configuration.
1677
1678-   `up` now waits for all services to exit before shutting down,
1679    rather than shutting down as soon as one container exits.
1680
1681-   Experimental support for the new docker networking system can be
1682    enabled with the `--x-networking` flag. Read more here:
1683    https://github.com/docker/docker/blob/8fee1c20/docs/userguide/dockernetworks.md
1684
1685New features:
1686
1687-   You can now optionally pass a mode to `volumes_from`, e.g.
1688    `volumes_from: ["servicename:ro"]`.
1689
1690-   Since Docker now lets you create volumes with names, you can refer to those
1691    volumes by name in `docker-compose.yml`. For example,
1692    `volumes: ["mydatavolume:/data"]` will mount the volume named
1693    `mydatavolume` at the path `/data` inside the container.
1694
1695    If the first component of an entry in `volumes` starts with a `.`, `/` or
1696    `~`, it is treated as a path and expansion of relative paths is performed as
1697    necessary. Otherwise, it is treated as a volume name and passed straight
1698    through to Docker.
1699
1700    Read more on named volumes and volume drivers here:
1701    https://github.com/docker/docker/blob/244d9c33/docs/userguide/dockervolumes.md
1702
1703-   `docker-compose build --pull` instructs Compose to pull the base image for
1704    each Dockerfile before building.
1705
1706-   `docker-compose pull --ignore-pull-failures` instructs Compose to continue
1707    if it fails to pull a single service's image, rather than aborting.
1708
1709-   You can now specify an IPC namespace in `docker-compose.yml` with the `ipc`
1710    option.
1711
1712-   Containers created by `docker-compose run` can now be named with the
1713    `--name` flag.
1714
1715-   If you install Compose with pip or use it as a library, it now works with
1716    Python 3.
1717
1718-   `image` now supports image digests (in addition to ids and tags), e.g.
1719    `image: "busybox@sha256:38a203e1986cf79639cfb9b2e1d6e773de84002feea2d4eb006b52004ee8502d"`
1720
1721-   `ports` now supports ranges of ports, e.g.
1722
1723        ports:
1724          - "3000-3005"
1725          - "9000-9001:8000-8001"
1726
1727-   `docker-compose run` now supports a `-p|--publish` parameter, much like
1728    `docker run -p`, for publishing specific ports to the host.
1729
1730-   `docker-compose pause` and `docker-compose unpause` have been implemented,
1731    analogous to `docker pause` and `docker unpause`.
1732
1733-   When using `extends` to copy configuration from another service in the same
1734    Compose file, you can omit the `file` option.
1735
1736-   Compose can be installed and run as a Docker image. This is an experimental
1737    feature.
1738
1739Bug fixes:
1740
1741-   All values for the `log_driver` option which are supported by the Docker
1742    daemon are now supported by Compose.
1743
1744-   `docker-compose build` can now be run successfully against a Swarm cluster.
1745
1746
17471.4.2 (2015-09-22)
1748------------------
1749
1750-  Fixed a regression in the 1.4.1 release that would cause `docker-compose up`
1751   without the `-d` option to exit immediately.
1752
17531.4.1 (2015-09-10)
1754------------------
1755
1756The following bugs have been fixed:
1757
1758-   Some configuration changes (notably changes to `links`, `volumes_from`, and
1759    `net`) were not properly triggering a container recreate as part of
1760    `docker-compose up`.
1761-   `docker-compose up <service>` was showing logs for all services instead of
1762    just the specified services.
1763-   Containers with custom container names were showing up in logs as
1764    `service_number` instead of their custom container name.
1765-   When scaling a service sometimes containers would be recreated even when
1766    the configuration had not changed.
1767
1768
17691.4.0 (2015-08-04)
1770------------------
1771
1772-   By default, `docker-compose up` now only recreates containers for services whose configuration has changed since they were created. This should result in a dramatic speed-up for many applications.
1773
1774    The experimental `--x-smart-recreate` flag which introduced this feature in Compose 1.3.0 has been removed, and a `--force-recreate` flag has been added for when you want to recreate everything.
1775
1776-   Several of Compose's commands - `scale`, `stop`, `kill` and `rm` - now perform actions on multiple containers in parallel, rather than in sequence, which will run much faster on larger applications.
1777
1778-   You can now specify a custom name for a service's container with `container_name`. Because Docker container names must be unique, this means you can't scale the service beyond one container.
1779
1780-   You no longer have to specify a `file` option when using `extends` - it will default to the current file.
1781
1782-   Service names can now contain dots, dashes and underscores.
1783
1784-   Compose can now read YAML configuration from standard input, rather than from a file, by specifying `-` as the filename. This makes it easier to generate configuration dynamically:
1785
1786        $ echo 'redis: {"image": "redis"}' | docker-compose --file - up
1787
1788-   There's a new `docker-compose version` command which prints extended information about Compose's bundled dependencies.
1789
1790-   `docker-compose.yml` now supports `log_opt` as well as `log_driver`, allowing you to pass extra configuration to a service's logging driver.
1791
1792-   `docker-compose.yml` now supports `memswap_limit`, similar to `docker run --memory-swap`.
1793
1794-   When mounting volumes with the `volumes` option, you can now pass in any mode supported by the daemon, not just `:ro` or `:rw`. For example, SELinux users can pass `:z` or `:Z`.
1795
1796-   You can now specify a custom volume driver with the `volume_driver` option in `docker-compose.yml`, much like `docker run --volume-driver`.
1797
1798-   A bug has been fixed where Compose would fail to pull images from private registries serving plain (unsecured) HTTP. The `--allow-insecure-ssl` flag, which was previously used to work around this issue, has been deprecated and now has no effect.
1799
1800-   A bug has been fixed where `docker-compose build` would fail if the build depended on a private Hub image or an image from a private registry.
1801
1802-   A bug has been fixed where Compose would crash if there were containers which the Docker daemon had not finished removing.
1803
1804-   Two bugs have been fixed where Compose would sometimes fail with a "Duplicate bind mount" error, or fail to attach volumes to a container, if there was a volume path specified in `docker-compose.yml` with a trailing slash.
1805
1806Thanks @mnowster, @dnephin, @ekristen, @funkyfuture, @jeffk and @lukemarsden!
1807
18081.3.3 (2015-07-15)
1809------------------
1810
1811Two regressions have been fixed:
1812
1813- When stopping containers gracefully, Compose was setting the timeout to 0, effectively forcing a SIGKILL every time.
1814- Compose would sometimes crash depending on the formatting of container data returned from the Docker API.
1815
18161.3.2 (2015-07-14)
1817------------------
1818
1819The following bugs have been fixed:
1820
1821- When there were one-off containers created by running `docker-compose run` on an older version of Compose, `docker-compose run` would fail with a name collision. Compose now shows an error if you have leftover containers of this type lying around, and tells you how to remove them.
1822- Compose was not reading Docker authentication config files created in the new location, `~/docker/config.json`, and authentication against private registries would therefore fail.
1823- When a container had a pseudo-TTY attached, its output in `docker-compose up` would be truncated.
1824- `docker-compose up --x-smart-recreate` would sometimes fail when an image tag was updated.
1825- `docker-compose up` would sometimes create two containers with the same numeric suffix.
1826- `docker-compose rm` and `docker-compose ps` would sometimes list services that aren't part of the current project (though no containers were erroneously removed).
1827- Some `docker-compose` commands would not show an error if invalid service names were passed in.
1828
1829Thanks @dano, @josephpage, @kevinsimper, @lieryan, @phemmer, @soulrebel and @sschepens!
1830
18311.3.1 (2015-06-21)
1832------------------
1833
1834The following bugs have been fixed:
1835
1836- `docker-compose build` would always attempt to pull the base image before building.
1837- `docker-compose help migrate-to-labels` failed with an error.
1838- If no network mode was specified, Compose would set it to "bridge", rather than allowing the Docker daemon to use its configured default network mode.
1839
18401.3.0 (2015-06-18)
1841------------------
1842
1843Firstly, two important notes:
1844
1845- **This release contains breaking changes, and you will need to either remove or migrate your existing containers before running your app** - see the [upgrading section of the install docs](https://github.com/docker/compose/blob/1.3.0rc1/docs/install.md#upgrading) for details.
1846
1847- Compose now requires Docker 1.6.0 or later.
1848
1849We've done a lot of work in this release to remove hacks and make Compose more stable:
1850
1851- Compose now uses container labels, rather than names, to keep track of containers. This makes Compose both faster and easier to integrate with your own tools.
1852
1853- Compose no longer uses "intermediate containers" when recreating containers for a service. This makes `docker-compose up` less complex and more resilient to failure.
1854
1855There are some new features:
1856
1857- `docker-compose up` has an **experimental** new behaviour: it will only recreate containers for services whose configuration has changed in `docker-compose.yml`. This will eventually become the default, but for now you can take it for a spin:
1858
1859        $ docker-compose up --x-smart-recreate
1860
1861- When invoked in a subdirectory of a project, `docker-compose` will now climb up through parent directories until it finds a `docker-compose.yml`.
1862
1863Several new configuration keys have been added to `docker-compose.yml`:
1864
1865- `dockerfile`, like `docker build --file`, lets you specify an alternate Dockerfile to use with `build`.
1866- `labels`, like `docker run --labels`, lets you add custom metadata to containers.
1867- `extra_hosts`, like `docker run --add-host`, lets you add entries to a container's `/etc/hosts` file.
1868- `pid: host`, like `docker run --pid=host`, lets you reuse the same PID namespace as the host machine.
1869- `cpuset`, like `docker run --cpuset-cpus`, lets you specify which CPUs to allow execution in.
1870- `read_only`, like `docker run --read-only`, lets you mount a container's filesystem as read-only.
1871- `security_opt`, like `docker run --security-opt`, lets you specify [security options](https://docs.docker.com/engine/reference/run/#security-configuration).
1872- `log_driver`, like `docker run --log-driver`, lets you specify a [log driver](https://docs.docker.com/engine/reference/run/#logging-drivers-log-driver).
1873
1874Many bugs have been fixed, including the following:
1875
1876- The output of `docker-compose run` was sometimes truncated, especially when running under Jenkins.
1877- A service's volumes would sometimes not update after volume configuration was changed in `docker-compose.yml`.
1878- Authenticating against third-party registries would sometimes fail.
1879- `docker-compose run --rm` would fail to remove the container if the service had a `restart` policy in place.
1880- `docker-compose scale` would refuse to scale a service beyond 1 container if it exposed a specific port number on the host.
1881- Compose would refuse to create multiple volume entries with the same host path.
1882
1883Thanks @ahromis, @albers, @aleksandr-vin, @antoineco, @ccverak, @chernjie, @dnephin, @edmorley, @fordhurley, @josephpage, @KyleJamesWalker, @lsowen, @mchasal, @noironetworks, @sdake, @sdurrheimer, @sherter, @stephenlawrence, @thaJeztah, @thieman, @turtlemonvh, @twhiteman, @vdemeester, @xuxinkun and @zwily!
1884
18851.2.0 (2015-04-16)
1886------------------
1887
1888- `docker-compose.yml` now supports an `extends` option, which enables a service to inherit configuration from another service in another configuration file. This is really good for sharing common configuration between apps, or for configuring the same app for different environments. Here's the [documentation](https://github.com/docker/compose/blob/master/docs/yml.md#extends).
1889
1890- When using Compose with a Swarm cluster, containers that depend on one another will be co-scheduled on the same node. This means that most Compose apps will now work out of the box, as long as they don't use `build`.
1891
1892- Repeated invocations of `docker-compose up` when using Compose with a Swarm cluster now work reliably.
1893
1894- Directories passed to `build`, filenames passed to `env_file` and volume host paths passed to `volumes` are now treated as relative to the *directory of the configuration file*, not the directory that `docker-compose` is being run in. In the majority of cases, those are the same, but if you use the `-f|--file` argument to specify a configuration file in another directory, **this is a breaking change**.
1895
1896- A service can now share another service's network namespace with `net: container:<service>`.
1897
1898- `volumes_from` and `net: container:<service>` entries are taken into account when resolving dependencies, so `docker-compose up <service>` will correctly start all dependencies of `<service>`.
1899
1900- `docker-compose run` now accepts a `--user` argument to specify a user to run the command as, just like `docker run`.
1901
1902- The `up`, `stop` and `restart` commands now accept a `--timeout` (or `-t`) argument to specify how long to wait when attempting to gracefully stop containers, just like `docker stop`.
1903
1904- `docker-compose rm` now accepts `-f` as a shorthand for `--force`, just like `docker rm`.
1905
1906Thanks, @abesto, @albers, @alunduil, @dnephin, @funkyfuture, @gilclark, @IanVS, @KingsleyKelly, @knutwalker, @thaJeztah and @vmalloc!
1907
19081.1.0 (2015-02-25)
1909------------------
1910
1911Fig has been renamed to Docker Compose, or just Compose for short. This has several implications for you:
1912
1913- The command you type is now `docker-compose`, not `fig`.
1914- You should rename your fig.yml to docker-compose.yml.
1915- If you’re installing via PyPI, the package is now `docker-compose`, so install it with `pip install docker-compose`.
1916
1917Besides that, there’s a lot of new stuff in this release:
1918
1919- We’ve made a few small changes to ensure that Compose will work with Swarm, Docker’s new clustering tool (https://github.com/docker/swarm). Eventually you'll be able to point Compose at a Swarm cluster instead of a standalone Docker host and it’ll run your containers on the cluster with no extra work from you. As Swarm is still developing, integration is rough and lots of Compose features don't work yet.
1920
1921- `docker-compose run` now has a `--service-ports` flag for exposing ports on the given service. This is useful for e.g. running your webapp with an interactive debugger.
1922
1923- You can now link to containers outside your app with the `external_links` option in docker-compose.yml.
1924
1925- You can now prevent `docker-compose up` from automatically building images with the `--no-build` option. This will make fewer API calls and run faster.
1926
1927- If you don’t specify a tag when using the `image` key, Compose will default to the `latest` tag, rather than pulling all tags.
1928
1929- `docker-compose kill` now supports the `-s` flag, allowing you to specify the exact signal you want to send to a service’s containers.
1930
1931- docker-compose.yml now has an `env_file` key, analogous to `docker run --env-file`, letting you specify multiple environment variables in a separate file. This is great if you have a lot of them, or if you want to keep sensitive information out of version control.
1932
1933- docker-compose.yml now supports the `dns_search`, `cap_add`, `cap_drop`, `cpu_shares` and `restart` options, analogous to `docker run`’s `--dns-search`, `--cap-add`, `--cap-drop`, `--cpu-shares` and `--restart` options.
1934
1935- Compose now ships with Bash tab completion - see the installation and usage docs at https://github.com/docker/compose/blob/1.1.0/docs/completion.md
1936
1937- A number of bugs have been fixed - see the milestone for details: https://github.com/docker/compose/issues?q=milestone%3A1.1.0+
1938
1939Thanks @dnephin, @squebe, @jbalonso, @raulcd, @benlangfield, @albers, @ggtools, @bersace, @dtenenba, @petercv, @drewkett, @TFenby, @paulRbr, @Aigeruth and @salehe!
1940
19411.0.1 (2014-11-04)
1942------------------
1943
1944 - Added an `--allow-insecure-ssl` option to allow `fig up`, `fig run` and `fig pull` to pull from insecure registries.
1945 - Fixed `fig run` not showing output in Jenkins.
1946 - Fixed a bug where Fig couldn't build Dockerfiles with ADD statements pointing at URLs.
1947
19481.0.0 (2014-10-16)
1949------------------
1950
1951The highlights:
1952
1953 - [Fig has joined Docker.](https://www.orchardup.com/blog/orchard-is-joining-docker) Fig will continue to be maintained, but we'll also be incorporating the best bits of Fig into Docker itself.
1954
1955   This means the GitHub repository has moved to [https://github.com/docker/fig](https://github.com/docker/fig) and our IRC channel is now #docker-fig on Freenode.
1956
1957 - Fig can be used with the [official Docker OS X installer](https://docs.docker.com/installation/mac/). Boot2Docker will mount the home directory from your host machine so volumes work as expected.
1958
1959 - Fig supports Docker 1.3.
1960
1961 - It is now possible to connect to the Docker daemon using TLS by using the `DOCKER_CERT_PATH` and `DOCKER_TLS_VERIFY` environment variables.
1962
1963 - There is a new `fig port` command which outputs the host port binding of a service, in a similar way to `docker port`.
1964
1965 - There is a new `fig pull` command which pulls the latest images for a service.
1966
1967 - There is a new `fig restart` command which restarts a service's containers.
1968
1969 - Fig creates multiple containers in service by appending a number to the service name (e.g. `db_1`, `db_2`, etc). As a convenience, Fig will now give the first container an alias of the service name (e.g. `db`).
1970
1971   This link alias is also a valid hostname and added to `/etc/hosts` so you can connect to linked services using their hostname. For example, instead of resolving the environment variables `DB_PORT_5432_TCP_ADDR` and `DB_PORT_5432_TCP_PORT`, you could just use the hostname `db` and port `5432` directly.
1972
1973 - Volume definitions now support `ro` mode, expanding `~` and expanding environment variables.
1974
1975 - `.dockerignore` is supported when building.
1976
1977 - The project name can be set with the `FIG_PROJECT_NAME` environment variable.
1978
1979 - The `--env` and `--entrypoint` options have been added to `fig run`.
1980
1981 - The Fig binary for Linux is now linked against an older version of glibc so it works on CentOS 6 and Debian Wheezy.
1982
1983Other things:
1984
1985 - `fig ps` now works on Jenkins and makes fewer API calls to the Docker daemon.
1986 - `--verbose` displays more useful debugging output.
1987 - When starting a service where `volumes_from` points to a service without any containers running, that service will now be started.
1988 - Lots of docs improvements. Notably, environment variables are documented and official repositories are used throughout.
1989
1990Thanks @dnephin, @d11wtq, @marksteve, @rubbish, @jbalonso, @timfreund, @alunduil, @mieciu, @shuron, @moss, @suzaku and @chmouel! Whew.
1991
19920.5.2 (2014-07-28)
1993------------------
1994
1995 - Added a `--no-cache` option to `fig build`, which bypasses the cache just like `docker build --no-cache`.
1996 - Fixed the `dns:` fig.yml option, which was causing fig to error out.
1997 - Fixed a bug where fig couldn't start under Python 2.6.
1998 - Fixed a log-streaming bug that occasionally caused fig to exit.
1999
2000Thanks @dnephin and @marksteve!
2001
2002
20030.5.1 (2014-07-11)
2004------------------
2005
2006 - If a service has a command defined, `fig run [service]` with no further arguments will run it.
2007 - The project name now defaults to the directory containing fig.yml, not the current working directory (if they're different)
2008 - `volumes_from` now works properly with containers as well as services
2009 - Fixed a race condition when recreating containers in `fig up`
2010
2011Thanks @ryanbrainard and @d11wtq!
2012
2013
20140.5.0 (2014-07-11)
2015------------------
2016
2017 - Fig now starts links when you run `fig run` or `fig up`.
2018
2019   For example, if you have a `web` service which depends on a `db` service, `fig run web ...` will start the `db` service.
2020
2021 - Environment variables can now be resolved from the environment that Fig is running in. Just specify it as a blank variable in your `fig.yml` and, if set, it'll be resolved:
2022   ```
2023   environment:
2024     RACK_ENV: development
2025     SESSION_SECRET:
2026   ```
2027
2028 - `volumes_from` is now supported in `fig.yml`. All of the volumes from the specified services and containers will be mounted:
2029
2030   ```
2031   volumes_from:
2032    - service_name
2033    - container_name
2034   ```
2035
2036 - A host address can now be specified in `ports`:
2037
2038   ```
2039   ports:
2040    - "0.0.0.0:8000:8000"
2041    - "127.0.0.1:8001:8001"
2042   ```
2043
2044 - The `net` and `workdir` options are now supported in `fig.yml`.
2045 - The `hostname` option now works in the same way as the Docker CLI, splitting out into a `domainname` option.
2046 - TTY behaviour is far more robust, and resizes are supported correctly.
2047 - Load YAML files safely.
2048
2049Thanks to @d11wtq, @ryanbrainard, @rail44, @j0hnsmith, @binarin, @Elemecca, @mozz100 and @marksteve for their help with this release!
2050
2051
20520.4.2 (2014-06-18)
2053------------------
2054
2055 - Fix various encoding errors when using `fig run`, `fig up` and `fig build`.
2056
20570.4.1 (2014-05-08)
2058------------------
2059
2060 - Add support for Docker 0.11.0. (Thanks @marksteve!)
2061 - Make project name configurable. (Thanks @jefmathiot!)
2062 - Return correct exit code from `fig run`.
2063
20640.4.0 (2014-04-29)
2065------------------
2066
2067 - Support Docker 0.9 and 0.10
2068 - Display progress bars correctly when pulling images (no more ski slopes)
2069 - `fig up` now stops all services when any container exits
2070 - Added support for the `privileged` config option in fig.yml (thanks @kvz!)
2071 - Shortened and aligned log prefixes in `fig up` output
2072 - Only containers started with `fig run` link back to their own service
2073 - Handle UTF-8 correctly when streaming `fig build/run/up` output (thanks @mauvm and @shanejonas!)
2074 - Error message improvements
2075
20760.3.2 (2014-03-05)
2077------------------
2078
2079 - Added an `--rm` option to `fig run`. (Thanks @marksteve!)
2080 - Added an `expose` option to `fig.yml`.
2081
20820.3.1 (2014-03-04)
2083------------------
2084
2085 - Added contribution instructions. (Thanks @kvz!)
2086 - Fixed `fig rm` throwing an error.
2087 - Fixed a bug in `fig ps` on Docker 0.8.1 when there is a container with no command.
2088
20890.3.0 (2014-03-03)
2090------------------
2091
2092 - We now ship binaries for OS X and Linux. No more having to install with Pip!
2093 - Add `-f` flag to specify alternate `fig.yml` files
2094 - Add support for custom link names
2095 - Fix a bug where recreating would sometimes hang
2096 - Update docker-py to support Docker 0.8.0.
2097 - Various documentation improvements
2098 - Various error message improvements
2099
2100Thanks @marksteve, @Gazler and @teozkr!
2101
21020.2.2 (2014-02-17)
2103------------------
2104
2105 - Resolve dependencies using Cormen/Tarjan topological sort
2106 - Fix `fig up` not printing log output
2107 - Stop containers in reverse order to starting
2108 - Fix scale command not binding ports
2109
2110Thanks to @barnybug and @dustinlacewell for their work on this release.
2111
21120.2.1 (2014-02-04)
2113------------------
2114
2115 - General improvements to error reporting (#77, #79)
2116
21170.2.0 (2014-01-31)
2118------------------
2119
2120 - Link services to themselves so run commands can access the running service. (#67)
2121 - Much better documentation.
2122 - Make service dependency resolution more reliable. (#48)
2123 - Load Fig configurations with a `.yaml` extension. (#58)
2124
2125Big thanks to @cameronmaske, @mrchrisadams and @damianmoore for their help with this release.
2126
21270.1.4 (2014-01-27)
2128------------------
2129
2130 - Add a link alias without the project name. This makes the environment variables a little shorter: `REDIS_1_PORT_6379_TCP_ADDR`. (#54)
2131
21320.1.3 (2014-01-23)
2133------------------
2134
2135 - Fix ports sometimes being configured incorrectly. (#46)
2136 - Fix log output sometimes not displaying. (#47)
2137
21380.1.2 (2014-01-22)
2139------------------
2140
2141 - Add `-T` option to `fig run` to disable pseudo-TTY. (#34)
2142 - Fix `fig up` requiring the ubuntu image to be pulled to recreate containers. (#33) Thanks @cameronmaske!
2143 - Improve reliability, fix arrow keys and fix a race condition in `fig run`. (#34, #39, #40)
2144
21450.1.1 (2014-01-17)
2146------------------
2147
2148 - Fix bug where ports were not exposed correctly (#29). Thanks @dustinlacewell!
2149
21500.1.0 (2014-01-16)
2151------------------
2152
2153 - Containers are recreated on each `fig up`, ensuring config is up-to-date with `fig.yml` (#2)
2154 - Add `fig scale` command (#9)
2155 - Use `DOCKER_HOST` environment variable to find Docker daemon, for consistency with the official Docker client (was previously `DOCKER_URL`) (#19)
2156 - Truncate long commands in `fig ps` (#18)
2157 - Fill out CLI help banners for commands (#15, #16)
2158 - Show a friendlier error when `fig.yml` is missing (#4)
2159 - Fix bug with `fig build` logging (#3)
2160 - Fix bug where builds would time out if a step took a long time without generating output (#6)
2161 - Fix bug where streaming container output over the Unix socket raised an error (#7)
2162
2163Big thanks to @tomstuart, @EnTeQuAk, @schickling, @aronasorman and @GeoffreyPlitt.
2164
21650.0.2 (2014-01-02)
2166------------------
2167
2168 - Improve documentation
2169 - Try to connect to Docker on `tcp://localdocker:4243` and a UNIX socket in addition to `localhost`.
2170 - Improve `fig up` behaviour
2171 - Add confirmation prompt to `fig rm`
2172 - Add `fig build` command
2173
21740.0.1 (2013-12-20)
2175------------------
2176
2177Initial release.
2178