Kitchen-Docker Changelog

Future CHANGELOG notes will be in GitHub release notes

Unreleased

  • Docs: document the last four options and split contributor docs (#463) (4818bce)

3.4.1 (2026-08-30)

Bug Fixes

  • quote container paths interpolated into docker exec command lines (#496) (ae3a754)
  • read the image id from a quiet build (#489) (ddc58b5)
  • report this gem's own version to kitchen diagnose (#490) (e28171d)

3.4.0 (2026-08-23)

Features

  • implement the driver's package, doctor, and status hooks (#491) (1366895)

3.3.5 (2026-08-23)

Bug Fixes

  • report when docker cp silently writes nothing (#487) (1bc62ba)
  • require test-kitchen 3.0 or newer (#492) (0c64225)
  • run every docker command through sudo when use_sudo is set (#485) (2481aad)
  • stop printing the image inspect JSON on destroy (#488) (0011558)

3.3.4 (2026-08-23)

Bug Fixes

  • read the container IP from NetworkSettings.Networks (#479) (98b3337)

3.3.3 (2026-08-23)

Bug Fixes

  • detect containers that exist but have stopped (#476) (c6c7038)
  • detect that an image is in use before removing it (#477) (4c5f255)
  • remove the staged script when a command fails (#481) (44de85e)
  • report why a temp file could not be written (#480) (70565e5)

3.3.2 (2026-08-23)

Bug Fixes

  • escape configured values interpolated into docker command lines (#471) (994b0ca)
  • split printenv output on the first equals sign only (#473) (9b0d0d7)
  • tolerate stderr warnings when parsing docker run container id (rebase of #452) (#475) (a8ad6f6)

3.3.1 (2026-08-23)

Bug Fixes

  • resolve gemspec load path and refactor proxy config method (#440) (28a9b79)

3.3.0 (2026-08-22)

Features

  • Support kitchen login with the Docker transport (#462) (ba9b75e)

Other Changes

3.2.4 (2026-07-28)

Bug Fixes

  • Avoid curl conflict with RHEL ubi in dockerfile helper (#458) (028ce4c)

3.2.3 (2026-06-25)

Bug Fixes

Other Changes

  • Update workflows (#410) (01acb1e)

  • refactor!: Run chefstlye over the codebase (#408) (a9995e7)

  • chore(deps): update actions/checkout action to v4 (#411) (bd3a992)

  • Tell the user when we can't remove the image if it's in use (#406) (bcb7c2b)

  • bump tk dep <5 (#446) (f27d137)

  • Ignore vendor directory (#439) (1c1c6a2)

  • Remove obsolete Arch Linux limits.conf workaround (#438) (ed14bc6)

  • Remove use of DSA keys due to openssh deprecation (#427) (f42bd6c)

  • Support docker build output for Docker Desktop v4.31 (#423) (511e4ad)

  • Use newer syntax for ENV variables (#424) (2007a0d)

  • fix: published package name (#415) (f633d49)

  • chore(deps): update test-kitchen/.github action to v0.1.2 (#414) (057465d)

  • chore(deps): replace google-github-actions/release-please-action action with googleapis/release-please-action (#432) (c1ba214)

  • chore(deps): update actions/checkout action to v5 (#430) (e756c47)

  • chore(deps): update dependency rspec-its to v2 (#425) (9b22526)

  • chore: Remove EOL operating systems from test matrix (#435) (06a6ccf)

  • chore(deps): update dependency kitchen-inspec to v3 (#428) (0cfbe46)

  • chore(deps): update googleapis/release-please-action action to v4 (#433) (60b83e0)

  • chore(deps): update actions/checkout action to v6 (#443) (8be39d4)

  • chore(deps): update test-kitchen/.github action to v0.2.4 (#442) (3490106)

  • Fix curl package conflict in Amazon Linux 2022 images (#436) (4eccec9)

  • chore(deps): update actions/checkout action to v7 (#453) (8397e75)

  • chore(deps): update googleapis/release-please-action action to v5 (#451) (aa7ba91)

  • chore(deps): update docker/setup-buildx-action action to v4 (#449) (5b0a6dc)

  • chore(deps): update docker/setup-qemu-action action to v4 (#448) (803738e)

3.0.0 (2023-11-15)

2.15.0 (2023-11-13)

2.14.0 - November 13, 2023

  • Make sure the /etc/sudoers.d directory exists by @garethgreenaway in #397
  • Breaking almalinux platform out by @garethgreenaway #398
  • fix: parse_image_id: Process "docker build" output in reverse line order by @terminalmage in #400
  • Allow build temporary Dockerfile in configured custom_dir by @Val in 294

2.13.0 - June 10, 2022

2.12.0 - December 22, 2021

  • Support Docker BuildKit - @RulerOf
  • Add new docker_platform config to allow specifying architectures - @RulerOf
  • Use Docker BuildKit, support multiple CPU architectures (#386) (9c2edd7)

2.11.0 - July 2, 2021

  • Update the development dependency on kitchen-inspec to 2.x
  • Retrieve hostname state data after container is launched to avoid failures when use_internal_docker_network is set
  • Add a new option for setting container isolation. See the readme for additional details
  • Support GPUs in containers with a new gpus option that takes the same arguments that would be passed to docker run --gpus
  • suse platform: use system script for ssh key initialization
  • Add support for the --mount docker CLI option. See the readme for additional details
  • Use sudo.d files instead of directly editing the sudoers file
  • Allow passing --tmpfs entries to the docker run command. See the readme for additional details
  • Use less verbose and quicker setup on Gentoo
  • Lowercase the instance-name to avoid issues since docker does not allow instance with capital cases
  • Fix the error "Could not parse Docker build output for image ID" by improving the output line matching
  • Add support for almalinux & rockylinux
  • Add a maintainer wanted status (9751a14)
  • Update kitchen-inspec requirement from ~> 1.1 to ~> 2.0 (#367) (e8106a4)
  • Added driver option for container isolation (#351) (7f45feb)
  • Support GPU in docker (#347) (f0bce9d)
  • Fix CI tests and move Dockerfile configurations to helper file (#370) (d9db4f9)
  • Add support for the --mount CLI option (#363) (5f77c2c)
  • stop editing /etc/sudoers directly (#334) (6b4e552)
  • disables docker buildkit (fixes #337) (#379) (b45c485)
  • Updates image_helper for additional output line matching (#382) (1e58989)
  • Upgrade to GitHub-native Dependabot (#381) (66cedc4)
  • README.md: Fix link to getting-started page (#383) (1b33572)

2.10.0 - Mar 28, 2020

  • Switched from require to require_relative to slightly improve load time performance
  • Allow for train gem 3.x
  • Refactor driver to include Windows support (includes new transport for all supported platforms)
  • Allow Multiple Platform Names for Windows (#345) (c2f715e)
  • Allow train 3.x dev dep (#358) (73f88e6)
  • Use require_relative instead of require (#359) (9b66340)
  • Update to the latest Ruby releases in Travis (1726dbf)

2.9.0 - Mar 15, 2019

  • Add automatic OS detection for amazonlinux, opensuse/leap, and opensuse/tumbleweed
  • On Fedora containers uses dnf to setup the OS not yum
  • Add support for Amazon Linux (#323) (bac1803)
  • On Fedora install the dependencies with dnf not yum (#333) (9009e85)
  • Add support for the opensuse/leap images (#322) (8743b45)

2.8.0 - Jan 18, 2019

  • Add new config option use_internal_docker_network, which allows running Docker within Docker. See readme for usage details.
  • Resolve errors while loading libraries on archlinux
  • Fix failures on Ubuntu 18.04
  • Check if image exists before attempting to remove it so we don't fail
  • Add oraclelinux platform support
  • Prevent uninitialized constant Kitchen::Driver::Docker::Base64 error by requiring base64
  • Disable docker caching since I think it's breaking things. (57a8771)
  • archlinux must be updated when repos are refreshed (#307) (6075eb3)
  • Update homepage in gemspec (#321) (e1d1d7b)
  • mkdir /run/sshd in container to support ubuntu 18.04 (#309) (fe9fa89)
  • Added support for oraclelinux (#298) (37eff91)
  • Fix bug #314 - check if image exists before remove. (#315) (7f5e8dc)
  • require base64 (#311) (2831594)
  • feat: added use_internal_docker_network feature (#304) (8f6038d)
  • Make sure the travis badge is master (254058c)

2.7.0

  • Support for SUSE-based container images.
  • Improved support for build context shipping.
  • Changed use_sudo to default to false in keeping with modern Docker usage.
  • Fix Gentoo support (#230) (668a028)
  • Use relative paths when passing -f Dockerfile (#245) (b2b44ba)
  • Fix ssh_host key generation failure if file already exists (#253) (350a698)
  • Docker for Windows socket example (#255) (08fbc00)
  • Add support for sles and opensuse operating systems. (#262) (9eabd01)
  • Remove gemnasium badge (#300) (69be64f)
  • Change use_sudo to default to false. (fe3734e)
  • Changelog for 2.7.0. (8714f2a)
  • Swap 12.04 for 18.04. (71218f5)
  • Drop 18.04 for now, weird issues with sshd. (8b1e0d0)
  • Use specific versions for tests. (6b5a561)
  • Possible fix for 18.04 or other debianoids that don't actually use upstart. (56b5aea)
  • Test on recent Ruby. (f914ed9)
  • Also remove 18.04 here too. (ba57e54)
  • Disable Arch linux too for now. (f54d81a)

2.6.0

  • Set container name with information from the run so you can identify them later on.
  • Upgrade to new driver base class structure.

2.6.0.rc.0 (2016-08-14)

  • Include the actual license text for ApacheV2. (d64919b)
  • More specific versions because RVM makes me sad. (232e5a8)
  • Try caching docker stuff? (03d1104)
  • Bundle exec all the things dot guife. (a853861)
  • Update README.md (b408e94)
  • Updates for the README. [ci skip] (4130893)
  • Add coverage reporting. This is going to be sad. (ab83071)
  • env container=docker for debians, ext #192 (#216) (6f00783)
  • De-legacy the driver by switching to the Base base class. (b6d8a47)
  • Set a default container name that includes a bunch of info to track down what launched the container. Shameless borrowed from kitchen-rackspace. (bbefea6)
  • Be a little less reserved about string length because docker seems to accept longer strings. (deb1d35)
  • Make sure we create an unlocked user now that we aren't setting a password. (ed387b2)
  • Prepping an RC release to soak for a bit. (20eaca1)
  • Changelog for 2.6.0. (62f4894)

2.5.0

  • #209 Fix usage with Kitchen rake tasks.
  • Add run_options and build_options configuration.
  • #195 Fix Arch Linux support.
  • Fix shell escaping for build paths and SSH keys.
  • Support tmpfs mounts without requiring privileged mode (#212) (f4badb3)
  • Remove the tmpfs config option in favor of a more generic run_options config, and build_options in case something is needed there. (255e5cf)
  • Minor cleanups. (090c2c3)
  • Trying to start on getting CI to be a thing. (5b245c7)
  • Clean up the capabilities test suite. (f58d170)
  • Some tweaks to the kitchen config based on #195. (d0afc76)
  • Fix copyright year. (4982231)
  • Bump to a pre-release version number. (bf1eca8)
  • Escape the temp file path if needed. Fixes #214. (fd41ceb)
  • Another minor cleanup. (f93b21b)
  • Copy over the rest of #195. Closes #195. (bc5dd57)
  • Upgrade OpenSSL on Arch to avoid mismatch errors. (614b65b)
  • Some tweaks to make sudo work on all platforms. (c05dbe9)
  • Update the capabilities test. (8828cab)
  • Update the dockerfile tests to include the SSH key. (e41c7a8)
  • I forgot we need Chef installed for busser to work correctly. (c02fcff)
  • Add inspec integration tests. /cc @chris-rock (45d5a1e)
  • Fully escape the public key when echo'ing it. (28f1e17)
  • Changelog for 2.5.0. (9f02e4f)

2.4.0

  • #148 Restored support for older versions of Ruby.
  • #149 Handle connecting to a container directly as root.
  • #154 Improve container caching by reordering the build steps.
  • #176 Expose proxy environment variables to the container automatically.
  • #192 Set $container=docker for CentOS images.
  • #196 Mutex SSH key generation for use with kitchen -c.
  • #192 Don't wait when stopping a container.
  • Strip the public_key whitespace (#167) (2ae315e)
  • Remove Tempfile.create. (727f4d0)
  • Note about docker-machine since boot2docker is being deprecated (#187) (f7acd0f)
  • Whitespace cleanup. (6588c2c)
  • Don't wait while stopping a container (#198) (6b2c855)
  • Prepping a 2.4.0 release at long last. (8a8e40a)

2.3.0

  • build_context option (boolean) to enable/disable sending the build context to Docker.
  • updated docker version constraint in readme (a80b3af)
  • Allow disabling the build context. (#143) (531ecd1)
  • minor cleanup and test build_context config (5d07ae0)
  • Add docs for build_context. (#144) (94cf846)
  • minor version bump, 2.3.0 (7687efd)

2.2.0

  • Use a temporary file for each suite instance Docker container Dockerfile, instead of passing their contents via STDIN. This allows for the use of commands like ADD and COPY. Users must now use Docker >= 1.5.0
  • Passwordless suite instance Docker container login (SSH), using a generated key pair.
  • Support for sharing a host device with suite instance Docker containers.
  • README YAML highlighting.
  • updated changelog (041b48f)
  • Fix docs for run_command default (#140) (b5972dd)
  • README.md: Syntax highlight yaml (#139) (cbf76ea)
  • Adding passwordless SSH and fixing some of the spec files (#141) (2f1dda3)
  • Add support for --devices argument to docker. (#135) (159c13d)
  • Docker - Build Context Support (#136) (bf07ff2)
  • Post merge adjustments, release prep (#142) (64586e3)
  • minor version bump, 2.2.0 (ebe73ba)

2.1.0

  • Use NUL instead of /dev/null on Windows for output redirection
  • Use NUL instead of /dev/null to make it work on Windows (#122) (88e3944)
  • minor version bump, windows nul (6aa98bf)

2.0.0

  • Use Docker top and port instead of inspect
  • Don't create the kitchen user if it already exists
  • Docker container capabilities options: cap_add, cap_drop
  • Docker security profile option (SELinux/AppArmor): security_opt
  • wait_for_sshd option (boolean)
  • Create /etc/sudoers.d if missing
  • Fixed option deprecation warnings, require Docker >= 1.2
  • Move away from docker inspect to avoid spurious output (#100) (6864c86)
  • update privileged flag (#107) (73b5352)
  • update capability flags (#105) (e25167c)
  • Add centos 5 /etc/sudoers.d support (#102) (a714406)
  • Fix deprecated -dns argument. Add host support (#94) (09bcd6e)
  • Do not fail if the user already exists (#101) (e9e8b13)
  • removed excess code, cleaned up cap_*, wait_for_sshd conditional (ca6dedd)
  • updated readme, move cap_* under privileged (8adcf53)
  • fixed cap_* block style (d96f6c7)
  • Enable security opt (rebased) (#118) (831356f)
  • minor readme edits, escape heading underscores, periods. (879691e)
  • readme edit, docker version requirement (8f2fae9)
  • readme edit, bold docker version constraint (fbd4541)
  • readme edit, docker installation link update (389299e)

1.7.0

  • Ensure a container id is set before attempting to inspect a container
  • use single quotes for centos platform/release adjustments (b35dbe5)
  • ensure there is a container id before inspecting a container (6649630)
  • minor version bump (a2d6501)

1.6.0

  • publish_all option to publish all ports to the host interface
  • instance_name option to name the Docker container
  • links option to link suite instance Docker containers
  • socket option will now default to ENV DOCKER_HOST if set
  • Fixed verify dependencies output redirection
  • Added fedora to platform names
  • Support for gentoo and gentoo-paludis platforms
  • Adding sudo rule to /etc/sudoers.d/#{username} in addition to /etc/sudoers
  • tell verify_dependencies to be quieter (#77) (4869efb)
  • gentoo support (#78) (35447ea)
  • Added configuration details for use_sudo (#95) (a7e3f48)
  • added "fedora" as a supported platform value (cd4ebfb)
  • Support --name and --link and -P options to link between some containers. (#92) (0792a15)
  • Add ENV as default socket and add docs (#71) (7e42958)
  • default run_command string concatenation (354c537)
  • test instance_name, publish_all, and links. (4a87141)
  • redirect stderr & stdout, write out sudoers.d/#{username} (03b2a30)
  • minor version bump (bdc10b4)

1.5.0 (2014-07-09)

  • Official CentOS image changed how it does tagging (#70) (a44b9bc)
  • minor version bump, centos tagging (d21213a)

1.4.0 (2014-06-27)

  • simple patch to add volumes-from support (#67) (844eda9)
  • Add http proxy and https proxy support to suite containers (#66) (30d239f)
  • dockerfile environment component, dried up proxy option (a225d1b)
  • updated license copyright (226f377)
  • sshd UsePrivilegeSeparation=no to deal w/ tmpfs, http(s)_proxy applied at run (2ffd6a0)

1.3.1 (2014-06-05)

  • Add support for all the authentication options. (#63) (aeebcc8)
  • use underscores for tls options, tls_ (3d68eb3)
  • tls config option default value white space (ab1a83f)
  • minor version bump, tls support (3284b2b)

1.2.1 (2014-04-24)

  • Added necessary requirement to parse socket uri (#55) (1506316)
  • patch level bump, ensure uri has been required (ab4828d)

1.2.0 (2014-04-21)

  • Added custom Dockerfile support (#53) (0163c88)
  • Added support for platform arch (#46) (3fcaf72)
  • parallel/concurrency can break container rm, check if container exists (3f89f57)
  • docker "binary" config option, ubuntu 14.04 uses docker.io, default serverspec (310a85f)
  • document "binary" config option (8fa842a)
  • include chef install for test containers/suites (c8549d7)
  • Add -N flag to ssh-keygen commands (#51) (566923f)

1.1.0.beta (2014-03-28)

  • added "which" package to rhel/centos provisioning (289c17c)

1.0.0 (2014-03-28)

  • added use_cache and remove_intermediate_containers config options (1bfb4a0)
  • README: update example .kitchen.local.yml (#45) (de23db2)
  • removed remove_intermediate_containers, little value, we have the cache (a1fc991)
  • documented use_cache (ca775b5)
  • cutting 1.0 \o/ (6b5d21b)

1.0.0.beta (2014-03-20)

  • add documentation for run_command config option (d3e83df)
  • use tk for testing (cf9907d)
  • make the default docker socket apparent in kitchen diagnose output (a3a60af)
  • fix documentation styling for run_command (3688ace)
  • minor readme edits, run_command (ef96495)
  • readme edits, yaml doesn't need quotes (fe8eba4)
  • readme, updated docs link, not driver specific (2165fa8)
  • base docker image has been deprecated, use ubuntu (99a373b)
  • already assuming ubuntu, let's assume platform --> image (d0e038a)
  • make disabling upstart configurable, disable_upstart, set to false for ubuntu-upstart image (8639669)
  • specify the docker cli tool in the dependency message (4683c39)
  • prepare for a 1.0.0.beta \o/ (713f8d6)
  • document disable_upstart, remove the known issue (d6f480e)
  • readme edit, capitalize distros (6e2df3d)

0.13.0 (2013-12-01)

  • run init so container remains accessible after sshd restart (#28) (5670fb1)

0.12.0 (2013-11-29)

  • compute use_sudo using socket, chef omnibus up to provisioner, socket nil for visability (e053859)

0.11.0 (2013-11-28)

  • options is 3rd argument, fixes #24 (#26) (a039b14)
  • depend on tk 1.0.0.rc.1 (d7e885f)
  • new release, wait_for_sshd() fix (f66f6aa)

0.10.0 (2013-11-19)

  • no need for sudo in provision_command (53b98b3)
  • Update to support the docker "hostname" command flag (#22) (8f630cd)
  • Added option privileged which defaults to false (#23) (9284832)
  • pre-release cleanup (16a8caf)

0.9.0 (2013-11-15)

0.8.1 (2013-10-26)

0.8.0 (2013-10-26)

  • version bump, less boiler plate (12bad52)

0.8.0.beta (2013-10-26)

  • Add a set of computed defaults for a couple of known platform names. (#19) (69185c1)
  • default_image rewrite, version bump (beta) (e09f5a5)

0.7.1 (2013-10-09)

  • keep upstart hack lines grouped (de80bca)

0.7.0 (2013-10-09)

  • /etc/hosts is ro (#18) (2f6afa5)
  • no longer can nor should ensure the fqdn resolves (126f730)

0.6.0 (2013-10-07)

  • readme edit, your -> the suite (920cc37)
  • correct forward symbol typo (#15) (3ba8cf2)
  • tweaks to support the latest docker builds (4e15329)

0.5.0 (2013-07-19)

  • custom provision command(s), version bump (bb0fde2)

0.4.0 (2013-07-17)

  • Make sure we have lsb-release installed on debian systems. (#7) (0cc1836)
  • Adds support for using dockers memory limiter. (#9) (83bf71a)
  • Add options for cpu shares, custom dns, and data volumes. (#11) (bc851fd)
  • fixed json parsing, now works w/ "the-stretch" branch (ff32bf2)
  • unnecessary default config options, readme white space (ab3e0aa)

0.3.0 (2013-06-24)

  • Update test-kitchen dependency to 1.0.0.alpha7 (#6) (ecc1db3)
  • specify host (public) ports for forward mappings (a1d5b8f)
  • driver config option to remove images, default to false, faster builds (3305c9f)
  • driver version bump (1c806d5)

0.2.0 (2013-06-23)

  • readme, example .kitchen.local.yml (584e4d1)
  • readme, document forward (be49379)
  • fixed image id parsing, multiple versions of docker (51f7364)
  • fixed container ip parsing, inspect returns an array in newer versions (038fd2e)
  • fixed ip address parsing, IpAddress -> IPAddress :/ (8e2ac8a)
  • fixed rm container, need to stop a running container first (142f05b)
  • driver version bump (afeaaf8)

0.1.3 (2013-05-15)

  • rm contaianer instead of kill, #4 (71c4e0d)
  • port forwarding, forward: - 22, #3 (084d98e)
  • default to base image (1d643be)
  • mention upstart issue in readme (55d39fe)
  • minor version bump (a541275)

0.1.2 (2013-05-15)

0.1.1 (2013-05-15)

  • readme, updated links (d189281)
  • verify_dependencies(), check for docker (6551e7c)
  • slowly updating the readme (2b52278)
  • require_chef_omnibus defaults to true (5dd6416)
  • use config username and password in dockerfile (fbfd29a)
  • readme, document image and platform (9ac9dbf)
  • release something (f9332f8)

0.1.1.dev (2013-05-15)

  • dynamic dockerfile (1bac53b)
  • multi-platform support, debian & rhel (cc71750)
  • UseDNS=no, ubuntu and centos "platform" aliases, ssh-keygen for rhel (36ecca3)
  • rhel openssh-clients (scp) and no pam (5b24c5e)
  • roll another dev build (fe33de9)

0.1.0.dev (2013-05-15)

  • Initial commit (b6d11af)
  • kitchen driver create (f4c03cd)
  • create an image, create a container, get its ip, let kitchen do its thing (5597110)
  • Style guideline updates (#1) (5528799)
  • sudo, localhost, chef install, destroy (dc2a965)
  • ensure hostname -f works for node.fqdn (7b4415f)
  • updated gemspec, homepage (c0f410b)