- Fix for when HealthCheck is used - [@smcavallo](https://github.com/smcavallo)
## 4.8.0 (2018-12-09)
- Fix issues with network_mode in docker_container - [@smcavallo](https://github.com/smcavallo)
- Add support for container health_check options - [@smcavallo](https://github.com/smcavallo)
- Add new docker_image_prune resource - [@smcavallo](https://github.com/smcavallo)
## 4.7.0 (2018-12-05)
- Added 17.03 support on RHEL 7. Thanks @smcavallo
- Added 18.09 support. Thanks @smcavallo
## 4.6.8 (2018-11-27)
- add missing new_resource reference that prevented docker_container's reload action from running
## 4.6.7 (2018-10-10)
- Add :default_address_pool property to docker_service
- Import docker.com repository gpg key via HTTPS directly from docker to avoid timeouts with Ubuntu's key registry
## 4.6.6 (unreleased)
- :default_ip_address_pool property added to configure default address pool for networks created by Docker.
## 4.6.5 (2018-09-04)
- package names changed again. looks like they swapped xenial and bionic name schema.
## 4.6.4 (2018-08-29)
- xenial 18.03 contains the new test version format
## 4.6.3 (2018-08-23)
- refactor version_string
## 4.6.2 (2018-08-23)
- Use different version string on .deb packages
## 4.6.1 (2018-08-21)
- Include setup_docker_repo in docker_service and allow old docker-ce versions for centos
## 4.6.0 (2018-08-19)
- Bump docker version to 18.06.0
## 4.5.0 (2018-08-16)
- sets the default log_level for the systemd docker service back to nil
- change require relative to library path
- docker_execute -> docker_exec
- Loosen up the requirement on docker-api gem
- Add new docker_plugin resource
## 4.4.1 (2018-07-23)
- Adding tests for docker_container detach == false (container is attached)
- Add new_resource and current_resource objects as context for methods when telling a container to wait (when detach is false)
## 4.4.0 (2018-07-17)
- docker service :log_level property converted to String.
- Use new package versioning scheme for Ubuntu bionic
- Bump the docker version everywhere
## 4.3.0 (2018-06-19)
- Remove the zesty? helper
- Initial support for Debian Buster (10)
- Bump the package default to 18.03.0
- Remove old integration tests
- Update package specs to pass on Amazon Linux
## 4.2.0 (2018-04-09)
- Initial support for Chef 14
- Remove unused api_version helper
- Support additional sysv RHEL like platforms by using platform_family
- Added oom_kill_disable and oom_score_adj support to docker_container
- ENV returns nil if the variable isn't found
- Remove the TLS default helpers
- Move coerce_labels into docker_container where its used
- Add desired_state false to a few more properties
- If the ENV values are nil don't use them to build busted defaults for TLS
- Remove a giant pile of Chef 12-isms
- Kill off ArrayType and NonEmptyArray types
- Don't require docker all over the place
- Kill the ShellCommand type
- Fix undefined method `v' for DockerContainer
- Make to_shellwords idempotent in DockerContainer
- Fix(Chef14): Use property_is_set with new_resource
- Use try-restart for systemd & retry start one time
## 4.1.1 (2018-03-11)
- Move to_snake_case to the container resource where it's used
- Reduce the number of coerce helpers in the the container resource
- Remove the Boolean type and instead just use TrueClass,FalseClass
- Use an actual integer in the memory_swappiness test since after reworking the coerce helpers we're requiring what we always stated we required here
## 4.1.0 (2018-03-10)
- Remove required from the name property. This resolves Foodcritic warnings in Foodcritic 13
- Resolve a pile of Chef 14 deprecation warnings in the container and images resources
- Remove support for Ubuntu 17.04 from the installation_package resource
- Moved all the helper libraries into the resources themselves. This is part 1 of the work to get these resources ready for inclusion in Chef 14
- Removed the version logic from installation_package when on Amazon Linux. Since we don't setup the repo we only have a single version available to us and we should just install that version. This resolves the constant need to update the hardcoded version in the cookbook every time Amazon releases a new Docker version.
## 4.0.2 (2018-03-05)
- Flag registry password property as sensitive in docker_registry resource
## 4.0.1 (2018-02-07)
- allow labels to have colons in the value
## 4.0.0 (2018-01-15)
### Breaking Changes
- Default to Docker 17.12.0
- Remove previously deprecated support for Debian 7 / CentOS 6\. Currently supported released of Docker do not run on these platforms.
- Removed support for the EOL Docker 1.12.3
- Removed the ChefSpec matchers which are no longer needed with ChefDK 2.X
- Remove the broken legacy binary installation resource. This was only used by very old EOL docker releases
- By default setup the apt/yum repos in the package install resource so that out of the box there's no need for additional cookbooks. If you would like to manage your own docker repos or other internal repos this may be disabled by property. Due to this change the cookbook now requires Chef 12.15+
### Other Changes
- Greatly expand Travis CI testing of the cookbook and use new InSpec resources for Docker instead of shelling out
- Add support for Ubuntu 17.10
- Update Fedora support for new DNF support in Chef
- Minor correctness and formatting updates to the readme
- load internal and ipv6 status for existing docker_network resources
- Update Amazon Linux to default to 17.09.1, which is the current version in their repos
- Fix the remove action in docker_installation_script
- Replace deprecated graph with data_root. Graph will now silently map to data_root
- Pass --host instead of -H in docker_service for clarity
- Make sure tar is installed to decompress the tarball in the docker_installation_tarball resource
- Update the download path for Docker CE to unbreak docker_installation_tarball
- Allow specifying channels in the docker_installation_tarball resource so you can install non-stable releases
## 3.0.0 (2017-12-22)
- Install docker-api via gem metadata. This bumps the required chef release for this cookbook to 12.10+
- Removed support for Ubuntu Precise
- Reworked the init system detection logic to work on additional platforms and without hardcoded distro version numbers
- Removed shasums from the binary installation resource for Docker 1.6-1.9.1 which are long ago EOL Docker releases
- Test on newer releases of openSUSE and Fedora and test on the latest Docker release
## 2.17.0 (2017-11-10)
- Update Amazon Linux to default to 17.06.2
## 2.16.4 (2017-10-30)
- quote log_opt
## 2.16.3 (2017-10-26)
- add init support to docker_container
## 2.16.2 (2017-10-05)
- fix for ip_address not being set
## 2.16.1 (2017-10-05)
- added support for env_file property
- bumping to 17.09.0
## 2.16.0 (2017-09-18)
- Use docker-api 1.33.6 which includes a few fixes
- This cookbook actually requires Chef 12.7+ so make sure that's mentioned everywhere
- Simplify debian/ubuntu detection code
- Remove support for long ago EOL Ubuntu distros like 15.04/15.10
- Update Amazon Linux to default to 17.03.2
## 2.15.29 (2017-09-12)
- Resolve Chef 14 deprecation warnings in docker_network
- Resolve new_resource warnings in docker_service
- Remove yum from the Berksfile
## 2.15.28 (2017-09-07)
- bumping to 17.06.2
- GH-910 image push needs to pass the credentials and a specific tag
## 2.15.27 (2017-08-31)
- restart docker on rhel sysvinit changes
## 2.15.26 (2017-08-25)
- bumping to 17.06.1
- support for debian 9
## 2.15.25 (2017-08-24)
- notifying :stop and :start instead of :restart in upstart service manager
## 2.15.24 (2017-08-20)
- Supporting env_vars and using in systemd
## 2.15.23 (2017-08-20)
- Fixing bug in volumes introduced with namespacing fixes
## 2.15.22 (2017-08-20)
- Fixing up deprecation warnings
## 2.15.21 (2017-08-07)
- fix to_bytes parsing
- host port can now be a range and matches properly with container port range
- typo on security_opt
- fix for docker_service not containing a listening socket
## 2.15.20 (2017-08-04)
- Using stable docker package version numbers
## 2.15.19 (2017-08-04)
- reverting default_group
- adding docker group to README
## 2.15.18 (2017-07-20)
- create the socket first so restarts on the service unit file don't fail
- redhat defaults to a different group name
- socket group shouldn't be hardcoded
- docker_network: support ipv6 & internal
## 2.15.17 (2017-07-18)
- adding restart notifications to upstart and cleaning house on the configs
- fix docker socket group being empty
- bring systemd unit file closer to stock
## 2.15.16 (2017-07-14)
- Issue #849 Fix service restarts on OS using systemd
## 2.15.15 (2017-07-10)
- upstream systemd config no longer contains the slave mount flag
## 2.15.14 (2017-07-03)
- Simplifying kitchen config
- Using dokken-images to speed up tests
- Updating Amazon Linux to default to 17.03.1
- Package helper for Debian 9
## 2.15.13 (2017-06-15)
- kill_after property default value to nil
- only use --raw-logs argument in versions which support it
## 2.15.12 (2017-06-13)
- reverting gem metadata for now as it requires build tools dependency for the json gem
## 2.15.11 (2017-06-13)
- make docker.service override match closer to stock
## 2.15.10 (2017-06-13)
- adding support for chef >= 12.8 metadata gem installs
- using docker-api 1.33.4
## 2.15.9 (2017-06-13)
- updating systemd docker.service with changes from official docker install
- 12.04 doesn't support docker 17.05.0
## 2.15.8 (2017-06-12)
- Bumping to latest docker version
## 2.15.7 (2017-06-12)
- Adding Ubuntu Zesty 17.04 support
## 2.15.6 (2017-05-01)
- # 853 - Add network_aliases support
- # 854 - Expose package_name through the docker_service resource
## 2.15.5 (2017-04-19)
- Fixing up memory related API keys
- Adding KernelMemory
- Adding MemorySwappiness
- Adding MemoryReservation
- Fixing MemorySwap convergatude (bug #833)
- Allowing for both integer and string input for all memory values
- Storage backends, kernel module loading, etc should now be handled externally
- Updating for Docker 1.6.2
- Preferring binary install method to OS packages
IMPORTANT
- attributes/ will be removed in the next release.
- most are currently non-functional
- All options will be driven through resource properties
## v0.37.0
Please note some important changes with this release:
- The sysconfig DOCKER_OPTS improvement in [#250] can potentially change the behavior of that environment variable as it now allows shell interpolation of any embedded variables. This should not affect most environments. If your DOCKER_OPTS does contains any expected `$`, please escape via `\$` for previous behavior or be sure it will behave as expected before upgrading.
- The daemon restart option (which is deprecated) has been defaulted to `nil` instead of `false` when `node['docker']['container_init_type']` is set to prevent issues with container restart policies. If you're dependent on the daemon option, please be sure to update your `node['docker']['restart']` appropriately.
- This release also defaults systemd docker host to `fd://` to match upstream, enabling socket activation properly. Adjust `node['docker']['host']` if necessary.
- Bugfix: [#239]: Upstart: install inotify tools only once (avoid CHEF-3694 warning) (thanks jperville)
- Bugfix: [#240]: Fixed dead service containers not being restarted on docker_container :run (thanks jperville)
- Bugfix: [#244]: Made docker_container action :remove remove the actual upstart service file (thanks jperville)
- Bugfix: [#246]: Lengthen shell_out timeout as workaround for slow docker_container action stop (thanks jperville)
- Bugfix: [#258]: Fix checking docker container status on debian (thanks fxposter)
- Bugfix: [#260]: Fix accidental port changing when using systemd templates (thanks fxposter)
- Bugfix: [#266]: Get tests working on master (thanks tduffield)
After a long personal hiatus (sorry!), this is the last minor release before 1.0 of the cookbook. If you can handle the Docker port number change and don't use anything deprecated, upgrading to 1.0.X from 0.35.X of the cookbook should be very easy.
This release has a bunch of changes and hasn't been fully tested yet. Wanted to get it out there for broad testing. Please use caution!
Major kudos to @tduffield for the [#147] PR, which includes:
- Binary Installation
- Added missing dependency resolution for using the binary.
- Dependency Checks
- Added `docker::dep_check` that will take an action if certain dependencies are not met.
-`node[docker][alert_on_error_action] = :fatal` will kill the chef run and print the error message.
-`node[docker][alert_on_error_action] = :warn` will print the error message but continue with the chef run. There is no guarantee that it will succeed though.
- KitchenCI
- Copied MiniTests to ServerSpec Tests
- Added new platforms (Debian 7.4)
- Changed provisioner from chef-solo to chef-zero
- Removed Ubuntu 12.10 because it is not supported by Docker and the Kernel is bad and fails all the tests.
- Removed tests for the source recipe. The dotcloud/docker repo actually doesn't build any Go deliverables.
- I think that the source recipe needs to be completely refactored.
Other awesome work merged:
- [#142]: Bugfix: Redeploy breaks when a link is present
- [#139]/[#153]/[#154]/[#156]/[#157]: Bugfix: container/image ID given as nil, fixes deprecated -notrunc
- [#164]: Bugfix: Removing a container should also remove its cidfile
- [#166]: Bugfix: Fix docker_inspect_id for Docker 1.0+
- [#158]/[#160]/[#165]: Bugfix: Fix NameError when displaying error messages for timed-out commands
- [#169]: Bugfix: Specify Upstart as service provider for cgroup on Ubuntu 14.04 (workaround for CHEF-5276, fixed in Chef 11.14)
- [#137]/[#138]: Enhancement: Experimental Ubuntu 14.04 LTS support
- [#144]: Enhancement: Experimental Amazon linux support
- [#150]/[#152]: Enhancement: Add net attribute, deprecate networking
- [#168]: Enhancement: Allow override of package name
- [#161]: Enhancement: Add minitest case for SysV service
- [#149]: Enhancement: Add --selinux-enabled daemon flag
- Enhancement: container LWRP remove_link and remove_volume actions
- Enhancement: [#124]: Add all docker daemon options as attributes
- Enhancement: [#125]: Use dns* attributes to set docker daemon options, not defaults per-container
- Enhancement: [#128]: Add checksum attribute for binary downloads
- Enhancement: [#126]: Set long option names for specified docker daemon options
- Enhancement: [#127]: Use a helper function to specify single line docker daemon options
# 0.33.1
- Bugfix: [#112]: Defines runner methods for ChefSpec matchers
- Bugfix: [#113]: [D-15] Fedora 19 installs Docker 0.8.1, does not have the -G or -e flag
# 0.33.0
This release deprecates AUFS/device-mapper handling from chef-docker, but provides backwards compatibility by still including the default recipe of the new cookbooks. Please update your dependencies, Github watching/issues, and recipes to reflect the two new community cookbooks:
- aufs: [aufs on community site](http://community.opscode.com/cookbooks/aufs) / [chef-aufs on Github](https://github.com/bflad/chef-aufs)
- device-mapper: [device-mapper on community site](http://community.opscode.com/cookbooks/device-mapper) / [chef-device-mapper on Github](https://github.com/bflad/chef-device-mapper)
- Bugfix: [#109]: Remove on lxc-net start from docker Upstart
- Enhancement: [#88]: Migrate AUFS logic to separate cookbook
- Enhancement: [#90]: Migrate device-mapper logic to separate cookbook
- Enhancement: container_dns* attributes to set --dns and --dns-search for all containers
# 0.32.2
- Bugfix: [#101]: Explicitly install lxc on Ubuntu (when lxc is exec_driver; continue to fully support LXC as a default installation path since its been since Docker 0.1)
- Bugfix: [#103]: Fix host argument (in docker run)
# 0.32.1
- Bugfix: [#98]: Ensure Ruby 1.8 syntax is supported
- Bugfix: Skip empty Array values in cli_args helper
# 0.32.0
_If you're using CentOS/RHEL with EPEL, upcoming docker-io 0.9.0 package upgrade can be tracked at [Bugzilla 1074880](https://bugzilla.redhat.com/show_bug.cgi?id=1074880)_
This release includes Docker 0.9.0 changes and defaults, such as setting exec_driver to libcontainer ("native"), setting -rm on docker build, double dash arguments on the CLI, additional flags, etc.
- DEPRECATED: Rename storage_type attribute to storage_driver to [match Docker terminology](http://docs.docker.io/en/latest/reference/commandline/cli/#daemon) (storage_type will be removed in chef-docker 1.0)
- DEPRECATED: Rename virtualization_type attribute to exec_driver to [match Docker terminology](http://docs.docker.io/en/latest/reference/commandline/cli/#daemon) (virtualization_type will be removed in chef-docker 1.0)
- Bugfix: [#80]: Use double dashed arguments on CLI
- Bugfix: Surround String values on CLI with quotes
- Enhancement: [#77]: Improved docker ps handling
- Enhancement: [#78]: Docker 0.9.0: Make --rm the default for docker build
- Enhancement: [#81]: Docker 0.9.0: Add a -G option to specify the group which unix sockets belong
- Enhancement: [#82]: Docker 0.9.0: Add -f flag to docker rm to force removal of running containers
- Enhancement: Add -f flag for docker rmi to force removal of images
- Enhancement: [#83]: Docker 0.9.0: Add DOCKER_RAMDISK environment variable to make Docker work when the root is on a ramdisk
- Enhancement: [#84]: Docker 0.9.0: Add -e flag for execution driver
- Enhancement: [#85]: Docker 0.9.0: Default to libcontainer
- Enhancement: [#86]: Add Chefspec LWRP matchers
# 0.31.0
Lots of init love this release. Now supporting runit.
Please note change of storage_type attribute from devmapper to devicemapper (and associated recipe name change) to match docker's name for the driver.
Cookbook now automatically adds -s option to init configurations if storage_type is defined, which is it by default. If you were specifying -s in the options attribute, you no longer need to do so. In my quick testing, docker daemon doesn't seem to mind if -s is specified twice on startup, although you'll probably want to get rid of the extra specification.
I've also dropped the LANG= and LC_ALL= locale environment settings from the Upstart job configuration. Its not specified in the default docker job. Please open an issue in docker project and here if for some reason this is actually necessary.
- Bugfix: Match devicemapper storage_type attribute to match docker driver name (along with recipe name)
- Enhancement: [#72]: Add initial runit init_type
- Enhancement: [#60]: Automatically set docker -d -s from storage_type attribute
- Enhancement: Simplify default/sysconfig file into one template (docker.sysconfig.erb) and source into SysV/Upstart init configurations
- Enhancement: [#46] Add rm attribute for build action on image LWRP
- Enhancement: Add no_cache attribute for build action on image LWRP
# 0.25.1
- Bugfix: [#44] Add missing run attribute for commit action on container LWRP
# 0.25.0
- DEPRECATED: image LWRP dockerfile, image_url, and path attributes (replaced with source attribute)
- Bugfix: Use docker_cmd for container LWRP remove and restart actions
- Enhancement: Add registry LWRP with login action
- Enhancement: Standardize on "smart" and reusable destination and source attributes for container and image LWRPs to define paths/URLs for various operations
- Enhancement: Add commit, cp, export, and kill actions to container LWRP
- Enhancement: Add insert, load, push, save, and tag actions to image LWRP
- Enhancement: Add local file and directory support to import action of image LWRP
- Enhancement: Add Array support to container LWRP link attribute
- Enhancement: Cleaned up LWRP documentation
# 0.24.2
- Bugfix: [#43] Better formatting for container LWRP debug logging
# 0.24.1
- Bugfix: Explicitly declare depends and supports in metadata
- Bugfix: Handle container run action if container exists but isn't running
# 0.24.0
- Bugfix: [#42] fix(upstart): Install inotify-tools if using upstart
- Enhancement: [#38] Allow a user to specify a custom template for their container init configuration
# 0.23.1
- Bugfix: [#39] Fix NoMethodError bugs in docker::aufs recipe
# 0.23.0
- Bugfix: Default oracle init_type to sysv
- Enhancement: Experimental Debian 7 package support
- Enhancement: Use new yum-epel cookbook instead of yum::epel recipe
- Enhancement: Use `value_for_platform` where applicable in attributes, requires Chef 11
# 0.22.0
- Enhancement: [#35] Use kernel release for package name on saucy and newer
- Enhancement: [#37] dont include aufs recipe on ubuntu 13.10 and up; don't require docker::lxc for package installs
# 0.21.0
- Enhancement: [#31] More helpful cmd_timeout error messages and catchable exceptions for container (`Chef::Provider::Docker::Container::CommandTimeout`) and image (`Chef::Provider::Docker::Image::CommandTimeout`) LWRPs
# 0.20.0
- Enhancement: Default to package install_type only on distros with known packages
- Enhancement: Initial Oracle 6 platform support via binary install_type
- Enhancement: Add `node['docker']['version']` attribute to handle version for all install_type (recommended you switch to this)
- Enhancement: `default['docker']['binary']['version']` attribute uses `node['docker']['version']` if set
- Enhancement: Add version handling to package recipe
# 0.18.1
- Bugfix: Remove ExecStartPost from systemd service to match change in docker-io-0.7.0-13
# 0.18.0
- Enhancement: CentOS/RHEL 6 package support via EPEL repository
- Enhancement: Fedora 19/20 package support now in updates (stable) repository
- Enhancement: sysv recipe and init_type
# 0.17.0
- Removed: configuration recipe (see bugfix below)
- Removed: config_dir attribute (see bugfix below)
- Bugfix: Revert back to specifying HTTP_PROXY and "DOCKER_OPTS" natively in systemd/Upstart (mostly to fix up systemd support)
- Bugfix: Add systemctl --system daemon-reload handling to systemd service template
- Bugfix: Add || true to container systemd/Upstart pre-start in case already running
- Bugfix: Locale environment already handled automatically by systemd
- Enhancement: Switch Fedora package installation from goldmann-docker to Fedora updates-testing repository
- Enhancement: Switch container LWRPs to named containers on Fedora since now supported
- Enhancement: Update docker systemd service contents from docker-io-0.7.0-12.fc20
- Add: Wants/After firewalld.service
- Add: ExecStartPost firewall-cmd
- Remove: ExecStartPost iptables commands
# 0.16.0
- Bugfix: Remove protocol from docker systemd ListenStreams
- Bugfix: Lengthen shell_out timeout for stop action in container LWRP to workaround Fedora being slow
- Enhancement: Add service creation to container LWRP by default
- Please thoroughly test before putting into production!
-`set['docker']['container_init_type'] = false` or add `init_type false` for the LWRP to disable this behavior
- Enhancement: Add configuration recipe with template
- Enhancement: Add container_cmd_timeout attribute to easily set global container LWRP cmd_timeout default
- Enhancement: Add image_cmd_timeout attribute to easily set global image LWRP cmd_timeout default
- Enhancement: Add cookbook attribute to container LWRP
- Enhancement: Add init_type attribute to container LWRP
- Enhancement: Add locale support for Fedora
- Enhancement: Fail Chef run if `docker run` command errors
# 0.15.0
- Enhancement: Fedora 19/20 package support via [Goldmann docker repo](http://goldmann.fedorapeople.org/repos/docker/)
- Enhancement: docker.service / docker.socket systemd support
- Enhancement: Add `node['docker']['init_type']` attribute for controlling init system
# 0.14.0
- Bugfix: [#27] Only use command to determine running container if provided
- Bugfix: [#28] Upstart requires full stop and start of service instead of restart if job configuration changes while already running. Note even `initctl reload-configuration` isn't working as expected from <http://upstart.ubuntu.com/faq.html#reload>
- Enhancement: [#26] Add ability to set package action
# 0.13.0
- Bugfix: Move LWRP updated_on_last_action(true) calls so only triggered when something actually gets updated
- Enhancement: Add container LWRP wait action
- Enhancement: Add attach and stdin args to container LWRP start action
- Enhancement: Add link arg to container LWRP remove action
- Enhancement: Use cmd_timeout in container LWRP stop action arguments
# 0.12.0
- Bugfix: Add default bind_uri (nil) to default attributes
- Enhancement: [#24] bind_socket attribute added
# 0.11.0
- DEPRACATION: container LWRP Fixnum port attribute: use full String notation from Docker documentation in port attribute instead
- DEPRACATION: container LWRP public_port attribute: use port attribute instead