Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

docker (431) Versions 11.8.4

Provides docker_service, docker_image, and docker_container resources

Policyfile
Berkshelf
Knife
cookbook 'docker', '~> 11.8.4', :supermarket
cookbook 'docker', '~> 11.8.4'
knife supermarket install docker
knife supermarket download docker
README
Dependencies
Changelog
Quality 50%

Docker Cookbook

CI State
OpenCollective
OpenCollective
License

The Docker Cookbook provides resources for installing docker as well as building, managing, and running docker containers.

Scope

This cookbook is concerned with the Docker container engine as distributed by Docker, Inc. It does not address Docker ecosystem tooling or prerequisite technology such as cgroups or aufs.

Maintainers

This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of Chef cookbook maintainers working together to maintain important cookbooks. If you’d like to know more please visit sous-chefs.org or come chat with us on the Chef Community Slack in #sous-chefs.

Requirements

  • Network accessible web server hosting the docker binary.
  • SELinux permissive/disabled if CentOS Docker Issue #15498

Platform Support

  • Amazon Linux 2
  • Debian 9/10/11
  • Fedora
  • Ubuntu 18.04/20.04/22.04
  • CentOS 7/8

Cookbook Dependencies

This cookbook automatically sets up the upstream Docker package repositories. If you would like to use your own repositories this functionality can be disabled and you can instead setup the repos yourself with yum_repository/apt_repository resources or the chef-apt-docker / chef-yum-docker cookbooks.

Docker Group

If you are not using the official docker repositories you may run into issues with the docker group being different. RHEL is a known issue that defaults to using dockerroot for the service group. Add the group property to the docker_service.

docker_service 'default' do
  group 'dockerroot'
  action [:create, :start]
end

Usage

  • Add depends 'docker' to your cookbook's metadata.rb
  • Use the resources shipped in cookbook in a recipe, the same way you'd use core Chef resources (file, template, directory, package, etc).
docker_service 'default' do
  action [:create, :start]
end

docker_image 'busybox' do
  action :pull
end

docker_container 'an-echo-server' do
  repo 'busybox'
  port '1234:1234'
  command "nc -ll -p 1234 -e /bin/cat"
end

Test Cookbooks as Examples

The cookbooks run by test-kitchen make excellent usage examples.

Those recipes are found at test/cookbooks/docker_test.

Resources Overview

  • [docker_service](documentation/docker_service.md): composite resource that uses docker_installation and docker_service_manager
  • [docker_container](documentation/docker_container.md): container operations
  • [docker_exec](documentation/docker_exec.md): execute commands inside running containers
  • [docker_image](documentation/docker_image.md): image/repository operations
  • [docker_image_prune](documentation/docker_image_prune.md): remove unused docker images
  • [docker_installation_package](documentation/docker_installation_package.md): install Docker via package 'docker-ce'
  • [docker_installation_script](documentation/docker_installation_script.md): install Docker via curl | bash
  • [docker_installation_tarball](documentation/docker_installation_tarball.md): install Docker from a tarball
  • [docker_network](documentation/docker_network.md): network operations
  • [docker_plugin](documentation/docker_plugin.md): plugin operations
  • [docker_registry](documentation/docker_registry.md): registry operations
  • [docker_service_manager_execute](documentation/docker_service_manager_execute.md): manage docker daemon with Chef
  • [docker_service_manager_systemd](documentation/docker_service_manager_systemd.md): manage docker daemon with systemd unit files
  • [docker_tag](documentation/docker_tag.md): image tagging operations
  • [docker_volume](documentation/docker_volume.md): volume operations
  • [docker_volume_prune](documentation/docker_volume_prune.md): remove unused docker volumes

Getting Started

Here's a quick example of pulling the latest image and running a container with exposed ports.

# Pull latest image
docker_image 'nginx' do
  tag 'latest'
  action :pull
  notifies :redeploy, 'docker_container[my_nginx]'
end

# Run container mapping containers port 80 to the host's port 80
docker_container 'my_nginx' do
  repo 'nginx'
  tag 'latest'
  port [ '80:80' ]
  host_name 'www'
  domain_name 'computers.biz'
  env 'FOO=bar'
  volumes [ '/some/local/files/:/etc/nginx/conf.d' ]
end

You might run a private registry and multiple Docker hosts.

# Login to private registry
docker_registry 'https://registry.computers.biz/' do
  username 'shipper'
  password 'iloveshipping'
  email 'shipper@computers.biz'
end

# Pull tagged image
docker_image 'registry.computers.biz:443/my_project/my_container' do
  tag 'latest'
  action :pull
  host 'tcp://host-1.computers.biz:2376'
end

# Run container
docker_container 'crowsnest' do
  repo 'registry.computers.biz:443/my_project/my_container'
  tag 'latest'
  host 'tcp://host-2.computers.biz:2376'
  tls_verify true
  tls_ca_cert "/path/to/ca.pem"
  tls_client_cert "/path/to/cert.pem"
  tls_client_key "/path/to/key.pem"
  action :run
end

You can manipulate Docker volumes and networks

docker_network 'my_network' do
  subnet '10.9.8.0/24'
  gateway '10.9.8.1'
end

docker_volume 'my_volume' do
  action :create
end

docker_container 'my_container' do
  repo 'alpine'
  tag '3.1'
  command "nc -ll -p 1234 -e /bin/cat"
  volumes 'my_volume:/my_data'
  network_mode 'my_network'
  action :run
end

See full documentation for each resource and action below for more information.

Resources

docker_installation

The docker_installation resource auto-selects one of the below resources with the provider resolution system.

Example

docker_installation 'default'

docker_installation_tarball

The docker_installation_tarball resource copies the precompiled Go binary tarball onto the disk. It should not be used in production, especially with devicemapper.

Example

docker_installation_tarball 'default' do
  version '1.11.0'
  source 'https://my.computers.biz/dist/docker.tgz'
  checksum '97a3f5924b0b831a310efa8bf0a4c91956cd6387c4a8667d27e2b2dd3da67e4d'
  action :create
end

Properties

  • version - The desired version of docker to fetch.
  • channel - The docker channel to fetch the tarball from. Default: stable
  • source - Path to network accessible Docker binary tarball. Ignores version when set.
  • checksum - SHA-256 checksum of the tarball file.

docker_installation_script

The docker_installation_script resource runs the script hosted by Docker, Inc at http://get.docker.com. It configures package repositories and installs a dynamically compiled binary.

Example

docker_installation_script 'default' do
  repo 'main'
  script_url 'https://my.computers.biz/dist/scripts/docker.sh'
  action :create
end

Properties

  • repo - One of 'main', 'test', or 'experimental'. Used to calculate script_url in its absence. Defaults to 'main'
  • script_url - 'URL of script to pipe into /bin/sh as root.

docker_installation_package

The docker_installation_package resource uses the system package manager to install Docker. It relies on the pre-configuration of the system's package repositories. The chef-yum-docker and chef-apt-docker Supermarket cookbooks can be used to use Docker's own repositories.

This is the recommended production installation method.

Example

docker_installation_package 'default' do
  version '20.10.11'
  action :create
  package_options %q|--force-yes -o Dpkg::Options::='--force-confold' -o Dpkg::Options::='--force-all'| # if Ubuntu for example
end

Properties

  • version - Used to calculate package_version string. This needs to be the complete version (19.03.8).
  • package_version - Manually specify the package version string
  • package_name - Name of package to install. Defaults to 'docker-ce'
  • package_options - Manually specify additional options, like apt-get directives for example
  • setup_docker_repo - Setup the download.docker.com repo. If you would like to manage the repo yourself so you can use an internal repo then set this to false. default: true on all platforms except Amazon Linux.
  • repo_channel - The channel of docker to setup from download.docker.com. Only used if setup_docker_repo is true. default: 'stable'

docker_service_manager

The docker_service_manager resource auto-selects a strategy from the docker_service_manager_* group of resources based on platform and version. The docker_service family share a common set of properties.

Example

docker_service_manager 'default' do
  action :start
end

docker_service_manager_execute

Example

docker_service_manager_execute 'default' do
  action :start
end

docker_service_manager_systemd

Example

docker_service_manager_systemd 'default' do
  host ['unix:///var/run/docker.sock', 'tcp://127.0.0.1:2376']
  tls_verify true
  tls_ca_cert "/path/to/ca.pem"
  tls_server_cert "/path/to/server.pem"
  tls_server_key "/path/to/server-key.pem"
  tls_client_cert "/path/to/cert.pem"
  tls_client_key "/path/to/key.pem"
  systemd_opts ["TasksMax=infinity","MountFlags=private"]
  systemd_socket_opts ["Accept=yes"]
  action :start
end

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers!

https://opencollective.com/sous-chefs#backers

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

https://opencollective.com/sous-chefs/sponsor/0/website
https://opencollective.com/sous-chefs/sponsor/1/website
https://opencollective.com/sous-chefs/sponsor/2/website
https://opencollective.com/sous-chefs/sponsor/3/website
https://opencollective.com/sous-chefs/sponsor/4/website
https://opencollective.com/sous-chefs/sponsor/5/website
https://opencollective.com/sous-chefs/sponsor/6/website
https://opencollective.com/sous-chefs/sponsor/7/website
https://opencollective.com/sous-chefs/sponsor/8/website
https://opencollective.com/sous-chefs/sponsor/9/website

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

amazon-ecs-agent Applicable Versions
arcgis-notebooks Applicable Versions
bastion Applicable Versions
cadvisor Applicable Versions
codenamephp_docker Applicable Versions
codenamephp_localmail Applicable Versions
containership Applicable Versions
cookbook-openshift3 Applicable Versions
cookbook-openshift3 2.0.5
cookbook-openshift3 2.0.6
cookbook-openshift3 2.0.7
cookbook-openshift3 2.0.9
cookbook-openshift3 2.0.10
cookbook-openshift3 2.0.12
cookbook-openshift3 2.0.13
cookbook-openshift3 2.0.14
cookbook-openshift3 2.0.15
cookbook-openshift3 2.0.18
cookbook-openshift3 2.0.19
cookbook-openshift3 2.0.20
cookbook-openshift3 2.0.21
cookbook-openshift3 2.0.22
cookbook-openshift3 2.0.23
cookbook-openshift3 2.0.24
cookbook-openshift3 2.0.26
cookbook-openshift3 2.0.27
cookbook-openshift3 2.0.28
cookbook-openshift3 2.0.29
cookbook-openshift3 2.0.32
cookbook-openshift3 2.0.33
cookbook-openshift3 2.0.41
cookbook-openshift3 2.0.42
cookbook-openshift3 2.0.43
cookbook-openshift3 2.0.44
cookbook-openshift3 2.0.45
cookbook-openshift3 2.0.46
cookbook-openshift3 2.0.47
cookbook-openshift3 2.0.48
cookbook-openshift3 2.0.49
cookbook-openshift3 2.0.50
cookbook-openshift3 2.0.51
cookbook-openshift3 2.0.52
cookbook-openshift3 2.0.53
cookbook-openshift3 2.0.54
cookbook-openshift3 2.0.55
cookbook-openshift3 2.0.57
cookbook-openshift3 2.0.58
cookbook-openshift3 2.0.60
cookbook-openshift3 2.0.62
cookbook-openshift3 2.0.63
cookbook-openshift3 2.0.64
cookbook-openshift3 2.0.65
cookbook-openshift3 2.0.66
cookbook-openshift3 2.0.68
cookbook-openshift3 2.0.69
cookbook-openshift3 2.0.71
cookbook-openshift3 2.0.72
cookbook-openshift3 2.0.74
cookbook-openshift3 2.0.75
cookbook-openshift3 2.0.76
cookbook-openshift3 2.0.77
cookbook-openshift3 2.0.82
cookbook-openshift3 2.0.83
cookbook-openshift3 2.0.85
cookbook-openshift3 2.0.86
cookbook-openshift3 2.0.88
cookbook-openshift3 2.0.90
cookbook-openshift3 2.1.0
cookbook-openshift3 2.1.1
cookbook-openshift3 2.1.2
cookbook-openshift3 2.1.3
cookbook-openshift3 2.1.4
cookbook-openshift3 2.1.5
cookbook-openshift3 2.1.6
cookbook-openshift3 2.1.7
cookbook-openshift3 2.1.8
cookbook-openshift3 2.1.9
cookbook-openshift3 2.1.11
cookbook-openshift3 2.1.13
cookbook-openshift3 2.1.14
cookbook-openshift3 2.1.17
cookbook-openshift3 2.1.18
cookbook-openshift3 2.1.19
cookbook-openshift3 2.1.21
cookbook-openshift3 2.1.23
cookbook-openshift3 2.1.24
cookbook-openshift3 2.1.25
cookbook-openshift3 2.1.26
corbel Applicable Versions
dcos Applicable Versions
deis Applicable Versions
docker-docker-registry Applicable Versions
docker-mms Applicable Versions
docker-mongodb Applicable Versions
docker-mongodb-replset-configurator Applicable Versions
docker-nginx Applicable Versions
docker-nodejs Applicable Versions
docker-platform Applicable Versions
docker-pm2 Applicable Versions
docker-python Applicable Versions
docker-redis Applicable Versions
docker2host Applicable Versions
docker_rancher Applicable Versions
docker_registry Applicable Versions
docker_stack Applicable Versions
dokku Applicable Versions
drone Applicable Versions
drone_app Applicable Versions
elite Applicable Versions
etcd Applicable Versions
gliderlabs_registrator Applicable Versions
harbor Applicable Versions
jmccann-docker-host Applicable Versions
kubernetes Applicable Versions
kubernetes-install Applicable Versions
kubernetes-mesos Applicable Versions
mediawiki Applicable Versions
mesos Applicable Versions
mw_php_fpm Applicable Versions
mydocker Applicable Versions
netdevops Applicable Versions
rancher Applicable Versions
rancher-ha Applicable Versions
rancher-ng Applicable Versions
sdlc_structure Applicable Versions
sdlc_structure 0.1.12
sdlc_structure 0.2.1
sdlc_structure 0.3.1
sdlc_structure 0.4.1
sdlc_structure 0.5.1
sdlc_structure 0.6.1
sdlc_structure 0.7.1
sdlc_structure 0.8.1
sdlc_structure 0.9.1
sdlc_structure 0.10.1
sdlc_structure 0.11.1
sdlc_structure 0.12.1
sdlc_structure 0.13.1
sdlc_structure 0.14.2
sdlc_structure 0.15.1
sdlc_structure 0.16.1
sdlc_structure 0.17.1
sdlc_structure 0.18.1
sdlc_structure 0.19.1
sdlc_structure 0.20.1
sdlc_structure 0.21.1
sdlc_structure 0.22.1
sdlc_structure 0.23.1
sdlc_structure 0.24.1
sdlc_structure 0.25.1
sdlc_structure 0.26.1
sdlc_structure 0.27.1
sdlc_structure 0.28.1
sdlc_structure 0.29.1
sdlc_structure 0.30.1
sdlc_structure 0.31.1
sdlc_structure 0.32.1
sdlc_structure 0.33.1
sdlc_structure 0.34.1
sdlc_structure 0.35.1
sdlc_structure 0.36.1
sdlc_structure 0.37.1
sdlc_structure 0.38.1
sdlc_structure 0.39.1
sdlc_structure 0.40.1
sdlc_structure 0.41.1
sdlc_structure 0.42.1
sdlc_structure 0.43.1
sdlc_structure 0.44.1
sdlc_structure 0.45.1
sdlc_structure 0.46.1
sdlc_structure 0.47.1
sdlc_structure 0.48.1
sdlc_structure 0.49.1
sdlc_structure 0.50.1
sdlc_structure 0.51.1
sdlc_structure 0.52.1
sdlc_structure 0.53.1
sdlc_structure 0.54.1
sdlc_structure 0.55.1
sdlc_structure 0.56.1
sdlc_structure 0.57.1
sdlc_structure 0.58.1
sdlc_structure 0.59.1
sdlc_structure 0.60.1
sdlc_structure 0.61.1
sdlc_structure 0.62.1
sdlc_structure 0.63.1
sdlc_structure 0.64.1
sdlc_structure 0.65.1
sdlc_structure 0.66.1
sdlc_structure 0.67.1
sdlc_structure 0.68.1
sdlc_structure 0.69.1
sdlc_structure 0.70.1
sdlc_structure 0.71.1
sdlc_structure 0.72.1
sdlc_structure 0.73.1
sdlc_structure 0.74.1
sdlc_structure 0.75.1
sdlc_structure 0.76.1
sdlc_structure 0.77.1
sdlc_structure 0.78.1
sdlc_structure 0.79.1
sdlc_structure 0.80.1
sdlc_structure 0.81.1
sdlc_structure 0.82.1
sdlc_structure 0.83.1
sdlc_structure 0.84.1
sdlc_structure 0.85.1
sdlc_structure 0.86.1
sdlc_structure 0.87.1
sdlc_structure 0.88.1
sdlc_structure 0.89.1
sdlc_structure 0.90.1
sdlc_structure 0.91.1
sdlc_structure 0.92.1
sdlc_structure 0.93.1
sdlc_structure 0.94.1
sdlc_structure 0.95.1
sdlc_structure 0.96.1
sdlc_structure 0.97.1
sdlc_structure 0.98.1
sdlc_structure 0.99.1
sdlc_structure 0.100.1
sdlc_structure 0.101.1
sdlc_structure 0.102.1
sdlc_structure 0.103.1
sdlc_structure 0.104.1
sdlc_structure 0.105.1
sdlc_structure 0.106.1
sdlc_structure 0.107.1
sdlc_structure 0.108.1
sdlc_structure 0.109.1
sdlc_structure 0.110.1
sdlc_structure 0.111.1
sdlc_structure 0.112.1
sdlc_structure 0.113.1
sdlc_structure 0.114.1
sdlc_structure 0.115.1
singularity Applicable Versions
stack-logger Applicable Versions
swarm Applicable Versions
tfc_agent Applicable Versions
vulcand Applicable Versions
weave Applicable Versions

docker Cookbook CHANGELOG

This file is used to list changes made in each version of the docker cookbook.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

11.8.4 - 2024-12-11

  • Update documentation for docker_container resource
  • Update documentation for docker_service resource
  • Update documentation for docker_exec resource
  • Update resources overview
  • Update documentation for docker_installation_package resource
  • Update documentation for docker_installation_script resource
  • Update documentation for docker_installation_tarball resource
  • Update documentation for docker_service_manager_execute resource
  • Update documentation for docker_service_manager_systemd resource
  • Update documentation for docker_volume_prune resource <<<<<<< HEAD

11.8.3 - 2024-12-11

- Cleanup changelog

5326caf (Update readme, and documentation folder)

11.8.2 - 2024-12-11

  • Enhance tmpfs support for containers
    • Added support for array format in tmpfs property
    • Improved documentation with examples
    • Added test coverage for tmpfs functionality

11.8.1 - 2024-12-11

  • Fix issue with container network mode causing unnecessary redeployment when using container:<name> format
    • Added network mode normalization to handle container IDs consistently
    • Prevents container recreation when only the container ID format changes

11.8.0 - 2024-12-11

  • Add volume_prune resource

11.7.0 - 2024-12-11

  • Added GPU support for the docker_container resource

11.6.0 - 2024-12-03

  • Add opts for ip6tables

11.5.0 - 2024-08-03

  • Add none as an option to service_manager to allow using the system defaults
  • Switch to running vagrant+virtualbox on Ubuntu via nested virtualization for smoke tests
  • Fix package installation tests

11.4.1 - 2024-07-16

  • Fix version_string for Debian Bookworm

11.4.0 - 2024-07-15

  • docker_installation_package support for Ubuntu v24.04 (noble)

11.3.7 - 2024-07-09

11.3.6 - 2024-07-08

  • Version bump to force a release

11.3.5 - 2024-07-08

  • Temporary version in for excon gem due to v0.111.0 introducing breaking changes with the docker-api gem. To be fixed upstream

11.3.2 - 2024-02-21

  • Add site_url property to docker_installation_package resource

11.3.0 - 2023-10-12

  • fix the generation of the docker version string to install on ubuntu jammy

11.2.6 - 2023-10-10

  • Standardise files with files in sous-chefs/repo-management
  • Various MDL fixes

11.2.1 - 2023-08-18

  • Fix breaking change introduced by #1253 (Add CgroupnsMode from Docker API as option)

11.2.0 - 2023-08-10

  • added cgroup_ns option to container resource with default private

11.0.1 - 2023-06-01

  • Only pass common resource properties of the docker_service-resource to the specific service manager resources.

11.0.0 - 2023-05-29

  • Update to work on Chef 18 in unified mode, fixes #1222 @b-dean

    The following resources are now custom resources:

    • docker_installation
    • docker_installation_package
    • docker_installation_script
    • docker_installation_tarball
    • docker_service
    • docker_service_base
    • docker_service_manager
    • docker_service_manager_execute
    • docker_service_manager_systemd

    This means their classes are no longer in the DockerCookbook module.

10.4.9 - 2023-05-16

  • Update sous-chefs/.github action to v2.0.4

10.4.8 - 2023-04-24

  • Update sous-chefs/.github action to v2.0.2

10.4.7 - 2023-04-20

  • Standardise files with files in sous-chefs/repo-management

10.4.4 - 2023-02-20

  • Standardise files with files in sous-chefs/repo-management

10.4.3 - 2023-02-15

  • Standardise files with files in sous-chefs/repo-management

10.4.2 - 2023-02-14

  • [skip ci] Fix yaml

10.4.1 - 2023-02-03

  • Fixed "Can't start a simple container" in #1226 @urlund

10.4.0 - 2023-02-03

  • Set a ceiling of Chef 17 as Chef 18 is broken due to #1222
  • Fix various CI issues

10.3.0 - 2022-12-13

  • docker_installation_package support for ubuntu 22.04

10.2.5 - 2022-12-05

  • Standardise files with files in sous-chefs/repo-management

10.2.4 - 2022-11-03

  • Update readme.md syntax, add link

10.2.3 - 2022-11-03

  • Update [CHANGELOG.md](CHANGELOG.md) to fix MarkDownLint rules

10.2.2 - 2022-10-10

  • Fix arguments to generate_json in docker_image_prune resource

10.2.1 - 2022-10-07

  • Sort container volume_binds to prevent erroneous container re-deploys

10.2.0 - 2022-08-19

  • Don't set container swappiness with cgroupv2

10.1.8 - 2022-04-20

  • Standardise files with files in sous-chefs/repo-management

10.1.7 - 2022-02-04

  • Remove delivery and move to calling RSpec directly via a reusable workflow
  • Update tested platforms

10.1.6 - 2022-01-05

  • Add debian 11 support

10.1.5 - 2021-12-20

  • Fix generate_json not accepting a variable number of arguments

10.1.4 - 2021-12-05

  • Fix raise when using mixed address families with a network

10.1.3 - 2021-12-01

  • Update to tarball checksums to 20.10.11 and 19.03.15
  • Update to using version 20.10.11 for testing suites

10.1.2 - 2021-11-16

  • Fix group resource for docker_installation_tarball library in #1205 @benoitjpnet

10.1.1 - 2021-11-03

  • Add CentOS Stream 8 to CI pipeline

10.1.0 - 2021-10-20

  • Move the docker_image_prune library to a custom resource

10.0.1 - 2021-10-20

  • Remove old refernces to services managers that no longer exist

10.0.0 - 2021-10-20

  • Remove the sysvinit Docker Service managers
    • Platforms that supported these service managers are now EOL

9.11.0 - 2021-10-20

  • Remove the docker_network library as it is no longer used
  • Move the docker_registry library to a custom resource

9.10.0 - 2021-10-19

  • Move the docker_tag library to a custom resource

9.9.0 - 2021-10-15

  • Fix unwanted changes to /lib/systemd/system/* files

9.8.0 - 2021-10-14

  • Stop the socket when stopping the service with systemd

9.7.0 - 2021-09-21

  • Move the docker_image library to a custom resource

9.6.1 - 2021-09-20

  • Update exec resource to use partial/_base

9.6.0 - 2021-09-16

  • Move the docker_plugin library to a custom resource

9.5.0 - 2021-09-16

  • Move the docker_network library to a custom resource

9.4.0 - 2021-09-16

  • Add ipand ip6 properties to docker_network

9.3.1 - 2021-09-15

  • Move the Docker log properties to a partial

9.3.0 - 2021-09-15

  • Update and sync log drivers list for docker_service_manager and docker_container

9.2.0 - 2021-09-15

  • Move the docker_exec library to a custom resource

9.1.0 - 2021-09-15

  • Move the docker_container resource to a custom resource

9.0.0 - 2021-09-15

  • Move the docker_volume resources to a custom resource
  • Add the base partial for all future resources
  • Require Chef 16+ for resource partial support

8.3.0 - 2021-09-13

  • Remove Ubuntu 16.04 from the GitHub Actions test matrix
  • Add amazonlinux-2 to the test matrix

8.2.4 - 2021-09-09

  • Ensure docker_container :health_check is idempotent

8.2.3 - 2021-09-08

  • Fix private registries credentials handling and public registries

8.2.2 - 2021-08-27

  • Use new action_class instead of declare_action_class.class_eval for helper methods in resources

8.2.1 - 2021-08-26

  • Ensure docker_container :user is idempotent

8.2.0 - 2021-08-26

  • Ensure docker_container :health_check is idempotent

8.1.0 - 2021-08-25

  • Remove Ubuntu 16.04 support now it's end of life

8.0.1 - 2021-08-25

  • fix markdown links check

8.0.0 - 2021-08-25

  • Remove upstart docker service manage
    • We don't officialy support any distros that use upstart anymore

7.7.8 - *2021-08-25

  • Fixes image prune filters to match updated format

7.7.7 - 2021-08-24

  • Update port syntax for docker_container

7.7.6 - 2021-08-24

  • [920] Properly document the devices syntax

7.7.5 - 2021-08-24

  • Disable installation-script-main suite on Debian 9 due to lack of upstream support

7.7.4 - 2021-08-24

  • Standardise files with files in sous-chefs/repo-management

7.7.3 - 2021-07-17

  • Ensure docker_image :load is idempotent

7.7.2 - 2021-07-01

  • Fix installed_docker_version method on ppc64le which appends v to the version

7.7.1 - 2021-06-30

  • Fix package installation on RHEL s390x architecture

7.7.0 - 2021-02-26

  • Add buildargs property to docker_image resource

7.6.1 - 2021-01-11

  • Fixed reload_signal and cpus bug for docker_container in #1090 @urlund

7.6.0 - 2021-01-06

  • Support for loki-docker driver logging plugin

7.5.0 - 2021-01-04

  • Update to use 20.10 by default
  • Update tarball for 19.03 to 19.03.14

7.4.1 - 2021-01-01

  • Fix the codeowners to use the correct group

7.4.0 - 2020-12-04

  • Support local option for the log_driver properties of docker_service and docker_container resources

7.3.0 - 2020-12-02

  • Updates the registry_mirror option of docker_service to be either a string or array. This way multiple mirrors can be configured

7.2.2 (2020-11-05)

  • Remove creates guard for extracting tarball which prevents upgrades

7.2.1 (2020-11-03)

  • Fix issue with default-ip-addr in systemd

7.2.0 (2020-10-26)

  • Add cpus options to docker_container

7.1.0 (2020-10-23)

Changed

  • Sous Chefs Adoption
  • Update Changelog to Sous Chefs
  • Update to use Sous Chefs GH workflow
  • Disable installation-script-experimental
  • Update README to sous-chefs
  • Update metadata.rb to Sous Chefs
  • Update tarball version to 19.03.13
  • Update tarball suite tests
  • Update tarball checksums to latest versions

Fixed

  • Cookstyle fixes
  • Update and fix ChefSpec tests
  • Yamllint fixes
  • MDL Fixes
  • Loosen docker-api gem to allow >= 1.34, < 3.0 (resolves #1135)
  • Update test recipes/tests so they can work with Cinc
  • Ensure docker group exists for tarball installation
  • Enable containerd systemd unit if binary exists

Added

  • Add testing for CentOS 8
  • Add testing for Ubuntu 20.04
  • Add docker_install_method helper to automate install method
  • Add container.service unit for tarball installation method

Removed

  • Disable broken tests and resources suite

7.0.0 (2020-08-31)

Breaking Change

The 7.0 release includes a breaking change to package installs with version specified. Before this change RHEL based systems allowed specifying any valid version string (19, 19.03, 19.03.8) and an * was added automatically to package name for specified version installation. New change specifies docker-ce package name and uses package resource version option to specify version. The version option default has been removed and thus will default to the lastest version. If version option is specified it'll lock the package to that version. Debian family machines are unaffected by the change. With this change we will not need to constantly release new versions of the cookbook for new releases of Docker.

6.0.3 (2020-06-15)

  • Removed default value for properties working_dir and memory_swap. - @antima-gupta
  • Updated memory_swap default value 0 to nil - @antima-gupta
  • Fix for docker_exec does not check the return code of the command it runs - @kapilchouhan99
  • Add provides in addition to resource_name to all resources - @tas50

6.0.2 (2020-06-02)

  • Standardise files with files in chef-cookbooks/repo-management - @xorimabot
  • Resolved deprecations to provide Chef Infra Client 16 compatibility - @xorimabot
    • resolved cookstyle error: libraries/docker_container.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_exec.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_image.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_image_prune.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_installation_package.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_installation_tarball.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_network.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_plugin.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_registry.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_service_manager_execute.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_tag.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName
    • resolved cookstyle error: libraries/docker_volume.rb:3:5 warning: ChefDeprecations/ResourceUsesOnlyResourceName

6.0.1 (2020-05-26)

  • Allow configuring reload signal #1089 - @scalp42
  • Update docker_image doc to fix escaping typo - @pgilad
  • Fix for env_file breaks on Chef 16 - @kapilchouhan99

6.0.0 (2020-04-28)

  • Require Chef Infra Client 15+ to fix issues with package versions on RHEL / Fedora since Chef Infra Client 15 reworked how yum_package performed and let us now pass in human readable versions to be installed- @tas50

5.0.0 (2020-04-28)

  • Fix missing reference to new_resource.restart_policy - @petracvv
  • Add testing with Github Actions - @tas50
  • Added debian 10 support
  • Add 'live_restore' property to 'docker_service'
  • Use new_resource to read attribute - @dud225
  • set default ipc_mode to shareable to prevent redeploying containers on each run - @dheerajd-msys
  • Cookstyle fix - @tas50
  • Remove legacy Amazon Linux 201x support. This cookbook now requires Amazon Linux 2 - @tas50
  • Remove support for EOL Ubuntu distros 14.04 and 17.10 - @tas50
  • install_package: Remove support for Docker 17.03 and earlier - @tas50
  • Require Chef Infra Client 13 or later - @tas50
  • Simplify the platform detection code - @tas50

4.12.0 (2020-01-03)

  • Include support for other architectures using upstream repo - @ramereth

4.11.0 (2019-12-16)

  • Update format of docker tarball filenames > 18.06.3 - @smcavallo
  • Rework integration and unit tests to get everything green again - @smcavallo
  • Update the systemd unit file - @smcavallo
  • Remove the legacy foodcritic comments that aren't needed since we use cookstyle - @tas50

4.10.0 (2019-11-18)

  • Cookstyle: Don't set allowed_actions in the resource - @tas50
  • update to the latest version of docker (for security reasons) - @smcavallo
  • fixing the default docker version in the kitchen tests - @smcavallo

4.9.3 (2019-08-14)

  • fixes issue #1061, docker_volume 'driver' and 'opts' don't work

4.9.2 (2019-02-15)

  • Support setting shared memory size.

4.9.1 (2019-02-01)

  • added systemd_socket_opts for additional configuration of the systemd socket file

4.9.0 (2018-12-17)

4.8.0 (2018-12-09)

  • Fix issues with network_mode in docker_container - @smcavallo
  • Add support for container health_check options - @smcavallo
  • Add new docker_image_prune resource - @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 (7.3.0 - 2020-12-02)

  • :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

Collaborator Number Metric
            

11.8.4 passed this metric

Contributing File Metric
            

11.8.4 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file

Cookstyle Metric
            

11.8.4 passed this metric

No Binaries Metric
            

11.8.4 passed this metric

Testing File Metric
            

11.8.4 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file

Version Tag Metric
            

11.8.4 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number