kitchen-docker 2.8.0 → 2.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf681b90a724609efd7b56203766d1e09c50fbab909b041e1e9cd6c0e4d6e07d
4
- data.tar.gz: 0b101baa332d10c1fdcb47619cd088cb874819c203713ca661241f955bd7a4b0
3
+ metadata.gz: bfc2ec595062530ef1a860930cb80cbdfd1f2d9b0f23f1bd7d261e769679b3a1
4
+ data.tar.gz: 51b9b8e5f65991cd5dfb26d719301ae55e90d94b2591671617396b993d0c614b
5
5
  SHA512:
6
- metadata.gz: 70314bfc54ff2077b098022aa850b93081010e7e11681492dc274506378659c8010986220703d6db38d8b8f6e64fa82833922beca01080918f16ad9f90a4b65b
7
- data.tar.gz: a279ed751961077df27590671e64215ceddf43210fc0ffe6b1283a9308e4f99dd24b8e576fb3d4fc8e8471fc8fa01c569715d2e1df39f2f6379c0bd44942baea
6
+ metadata.gz: 2149ff5a8af75c70e88b93d03f5431e1586d7e0d69d117d742ec591e76fb9aca96b9d8c76e4e9d937c8c398daa4a641d0089c608a6bea9762a0c48b5b9708590
7
+ data.tar.gz: 6e235534cf2f6ec24dc9cc3e59c10048fe874684c0488dcd15c5ffe0c9409491b27c40683a5945ad5cd857b6c03c72d8d0b90b0446069a0583068aebb5ae5cce
@@ -0,0 +1,7 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ open-pull-requests-limit: 10
data/.gitignore CHANGED
@@ -17,3 +17,5 @@ test/version_tmp
17
17
  tmp
18
18
  .kitchen/
19
19
  .kitchen.local.yml
20
+ Dockerfile
21
+ .DS_Store
@@ -0,0 +1,33 @@
1
+ <% # Make sure the local copy of the driver is loaded %>
2
+ <% lib = File.expand_path('../lib', __FILE__) %>
3
+ <% $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) %>
4
+ ---
5
+ driver:
6
+ name: docker
7
+ provision_command:
8
+ - powershell -ExecutionPolicy Bypass -NoLogo -Command . { iwr -useb https://omnitruck.chef.io/install.ps1 } ^| iex; install
9
+ - powershell -Command $path=$env:Path + ';c:\opscode\chef\embedded\bin'; Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' -Name Path -Value $path
10
+
11
+ transport:
12
+ name: docker
13
+ socket: tcp://localhost:2375
14
+
15
+ provisioner:
16
+ name: dummy
17
+
18
+ platforms:
19
+ - name: windows
20
+ driver_config:
21
+ image: mcr.microsoft.com/windows/servercore:1809
22
+ platform: windows
23
+
24
+ suites:
25
+ - name: default
26
+ - name: context
27
+ driver:
28
+ build_context: false
29
+ - name: inspec
30
+ driver:
31
+ provision_command: echo 1
32
+ verifier:
33
+ name: inspec
data/.kitchen.yml CHANGED
@@ -6,28 +6,30 @@ driver:
6
6
  name: docker
7
7
  provision_command: curl -L https://www.chef.io/chef/install.sh | bash
8
8
 
9
+ transport:
10
+ name: docker
11
+
9
12
  provisioner:
10
13
  name: dummy
11
14
 
12
15
  platforms:
13
- - name: ubuntu-14.04
14
- - name: ubuntu-16.04
15
- - name: centos-6
16
+ - name: amazonlinux-2
17
+ - name: ubuntu-18.04
18
+ - name: ubuntu-20.04
19
+ - name: fedora-latest
20
+ driver:
21
+ provision_command:
22
+ - yum install libxcrypt-compat -y
23
+ - curl -L https://www.chef.io/chef/install.sh | bash
16
24
  - name: centos-7
17
- - name: oraclelinux-6
25
+ - name: centos-8
18
26
  - name: oraclelinux-7
19
- - name: debian-8
20
- - name: opensuse-42.2
21
- driver:
22
- image: opensuse:42.2
23
- # - name: arch
24
- # driver:
25
- # image: base/archlinux
26
- # provision_command: true
27
- - name: unknown
28
- driver:
29
- image: ubuntu:16.04
30
- platform: ubuntu
27
+ - name: rockylinux-8
28
+ - name: debian-9
29
+ - name: debian-10
30
+ - name: opensuse-15
31
+ driver:
32
+ image: opensuse/leap:15
31
33
  - name: dockerfile
32
34
  driver:
33
35
  username: dockerfile
@@ -43,13 +45,20 @@ suites:
43
45
  driver:
44
46
  build_context: false
45
47
  - name: capabilities
46
- excludes: [arch,unknown,centos-7,centos-6,oraclelinux-6,oraclelinux-7,dockerfile,opensuse-42.2]
48
+ includes: [debian-9,debian-10,ubuntu-18.04,ubuntu-20.04]
47
49
  driver:
48
50
  provision_command:
49
51
  - curl -L https://www.chef.io/chef/install.sh | bash
50
52
  - apt-get install -y net-tools
51
53
  cap_drop:
52
54
  - NET_ADMIN
55
+ - name: arm64
56
+ excludes: [debian-9]
57
+ driver:
58
+ docker_platform: linux/arm64
59
+ - name: amd64
60
+ driver:
61
+ docker_platform: linux/amd64
53
62
  - name: inspec
54
63
  driver:
55
64
  provision_command: true
data/.travis.yml CHANGED
@@ -1,17 +1,57 @@
1
- sudo: required
2
- dist: trusty
3
- language: ruby
4
-
5
- rvm:
6
- - "2.3.1"
7
- - "2.4.3"
8
- - "2.5.1"
1
+ matrix:
2
+ include:
3
+ - os: linux
4
+ rvm: 2.4.9
5
+ dist: xenial
6
+ language: ruby
7
+ cache: bundler
8
+ script:
9
+ - bundle exec docker version
10
+ - bundle exec kitchen --version
11
+ - bundle exec rake spec
12
+ - bundle exec kitchen test -d always
13
+ - os: linux
14
+ rvm: 2.5.7
15
+ dist: xenial
16
+ language: ruby
17
+ cache: bundler
18
+ script:
19
+ - bundle exec docker version
20
+ - bundle exec kitchen --version
21
+ - bundle exec rake spec
22
+ - bundle exec kitchen test -d always
23
+ - os: linux
24
+ rvm: 2.6.5
25
+ dist: xenial
26
+ language: ruby
27
+ cache: bundler
28
+ script:
29
+ - bundle exec docker version
30
+ - bundle exec kitchen --version
31
+ - bundle exec rake spec
32
+ - bundle exec kitchen test -d always
33
+ - os: windows
34
+ language: bash
35
+ install:
36
+ - choco uninstall ruby
37
+ - choco install ruby --version=2.6.5.1
38
+ - export PATH=$(echo "$PATH" | sed -e 's/:\/c\/tools\/ruby27\/bin//')
39
+ - export PATH=$PATH:/c/tools/ruby26/bin
40
+ - choco install mingw
41
+ - choco install msys2
42
+ - ridk.cmd exec pacman -S --noconfirm --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-libxslt
43
+ script:
44
+ - if [[ $(tasklist | grep "gpg-agent") ]]; then taskkill -IM "gpg-agent.exe" -F; else echo "Process gpg-agent not found. Skipping."; fi
45
+ - powershell -ExecutionPolicy Bypass -NoLogo -File docker.ps1
46
+ - export KITCHEN_YAML=.kitchen.windows.yml
47
+ - ruby -v
48
+ - gem install bundler
49
+ - bundle config build.nokogiri --use-system-libraries
50
+ - bundle install
51
+ - bundle exec docker version
52
+ - bundle exec kitchen --version
53
+ - bundle exec rake spec
54
+ - bundle exec kitchen test -d always
9
55
 
10
56
  services:
11
57
  - docker
12
-
13
- script:
14
- - bundle exec docker version
15
- - bundle exec kitchen --version
16
- - bundle exec rake spec
17
- - bundle exec kitchen test -d always
data/CHANGELOG.md CHANGED
@@ -1,99 +1,114 @@
1
1
  # Kitchen-Docker Changelog
2
2
 
3
+ ## 2.12.0 - December 22, 2021
4
+
5
+ - Support Docker BuildKit - [@RulerOf](https://github.com/RulerOf)
6
+ - Add new `docker_platform` config to allow specifying architectures - [@RulerOf](https://github.com/RulerOf)
7
+
8
+ ## 2.11.0 - July 2, 2021
9
+
10
+ - Update the development dependency on kitchen-inspec to 2.x
11
+ - Retrieve hostname state data after container is launched to avoid failures when `use_internal_docker_network` is set
12
+ - Add a new option for setting container isolation. See the readme for additional details
13
+ - Support GPUs in containers with a new `gpus` option that takes the same arguments that would be passed to `docker run --gpus`
14
+ - suse platform: use system script for ssh key initialization
15
+ - Add support for the `--mount` docker CLI option. See the readme for additional details
16
+ - Use sudo.d files instead of directly editing the sudoers file
17
+ - Allow passing `--tmpfs` entries to the docker run command. See the readme for additional details
18
+ - Use less verbose and quicker setup on Gentoo
19
+ - Lowercase the instance-name to avoid issues since docker does not allow instance with capital cases
20
+ - Fix the error "Could not parse Docker build output for image ID" by improving the output line matching
21
+ - Add support for `almalinux` & `rockylinux`
22
+
23
+ ## 2.10.0 - Mar 28, 2020
24
+
25
+ - Switched from require to require_relative to slightly improve load time performance
26
+ - Allow for train gem 3.x
27
+ - Refactor driver to include Windows support (includes new transport for all supported platforms)
28
+
29
+ ## 2.9.0 - Mar 15, 2019
30
+
31
+ - Add automatic OS detection for amazonlinux, opensuse/leap, and opensuse/tumbleweed
32
+ - On Fedora containers uses dnf to setup the OS not yum
33
+
3
34
  ## 2.8.0 - Jan 18, 2019
4
35
 
5
- * Add new config option `use_internal_docker_network`, which allows running Docker within Docker. See readme for usage details.
6
- * Resolve errors while loading libraries on archlinux
7
- * Fix failures on Ubuntu 18.04
8
- * Check if image exists before attempting to remove it so we don't fail
9
- * Add oraclelinux platform support
10
- * Prevent `uninitialized constant Kitchen::Driver::Docker::Base64` error by requiring `base64`
36
+ - Add new config option `use_internal_docker_network`, which allows running Docker within Docker. See readme for usage details.
37
+ - Resolve errors while loading libraries on archlinux
38
+ - Fix failures on Ubuntu 18.04
39
+ - Check if image exists before attempting to remove it so we don't fail
40
+ - Add oraclelinux platform support
41
+ - Prevent `uninitialized constant Kitchen::Driver::Docker::Base64` error by requiring `base64`
11
42
 
12
43
  ## 2.7.0
13
44
 
14
- * Support for SUSE-based container images.
15
- * Improved support for build context shipping.
16
- * Changed `use_sudo` to default to `false` in keeping with modern Docker usage.
45
+ - Support for SUSE-based container images.
46
+ - Improved support for build context shipping.
47
+ - Changed `use_sudo` to default to `false` in keeping with modern Docker usage.
17
48
 
18
49
  ## 2.6.0
19
50
 
20
- * Set container name with information from the run so you can identify them
51
+ - Set container name with information from the run so you can identify them
21
52
  later on.
22
- * Upgrade to new driver base class structure.
53
+ - Upgrade to new driver base class structure.
23
54
 
24
55
  ## 2.5.0
25
56
 
26
- * [#209](https://github.com/portertech/kitchen-docker/pulls/209) Fix usage with Kitchen rake tasks.
27
- * Add `run_options` and `build_options` configuration.
28
- * [#195](https://github.com/portertech/kitchen-docker/pulls/195) Fix Arch Linux support.
29
- * Fix shell escaping for build paths and SSH keys.
57
+ - [#209](https://github.com/portertech/kitchen-docker/pulls/209) Fix usage with Kitchen rake tasks.
58
+ - Add `run_options` and `build_options` configuration.
59
+ - [#195](https://github.com/portertech/kitchen-docker/pulls/195) Fix Arch Linux support.
60
+ - Fix shell escaping for build paths and SSH keys.
30
61
 
31
62
  ## 2.4.0
32
63
 
33
- * [#148](https://github.com/portertech/kitchen-docker/issues/148) Restored support for older versions of Ruby.
34
- * [#149](https://github.com/portertech/kitchen-docker/pulls/149) Handle connecting to a container directly as root.
35
- * [#154](https://github.com/portertech/kitchen-docker/pulls/154) Improve container caching by reordering the build steps.
36
- * [#176](https://github.com/portertech/kitchen-docker/pulls/176) Expose proxy environment variables to the container automatically.
37
- * [#192](https://github.com/portertech/kitchen-docker/pulls/192) Set `$container=docker` for CentOS images.
38
- * [#196](https://github.com/portertech/kitchen-docker/pulls/196) Mutex SSH key generation for use with `kitchen -c`.
39
- * [#192](https://github.com/portertech/kitchen-docker/pulls/192) Don't wait when stopping a container.
64
+ - [#148](https://github.com/portertech/kitchen-docker/issues/148) Restored support for older versions of Ruby.
65
+ - [#149](https://github.com/portertech/kitchen-docker/pulls/149) Handle connecting to a container directly as root.
66
+ - [#154](https://github.com/portertech/kitchen-docker/pulls/154) Improve container caching by reordering the build steps.
67
+ - [#176](https://github.com/portertech/kitchen-docker/pulls/176) Expose proxy environment variables to the container automatically.
68
+ - [#192](https://github.com/portertech/kitchen-docker/pulls/192) Set `$container=docker` for CentOS images.
69
+ - [#196](https://github.com/portertech/kitchen-docker/pulls/196) Mutex SSH key generation for use with `kitchen -c`.
70
+ - [#192](https://github.com/portertech/kitchen-docker/pulls/192) Don't wait when stopping a container.
40
71
 
41
72
  ## 2.3.0
42
73
 
43
- * `build_context` option (boolean) to enable/disable sending the build
74
+ - `build_context` option (boolean) to enable/disable sending the build
44
75
  context to Docker.
45
76
 
46
77
  ## 2.2.0
47
78
 
48
- * Use a temporary file for each suite instance Docker container
79
+ - Use a temporary file for each suite instance Docker container
49
80
  Dockerfile, instead of passing their contents via STDIN. This allows for
50
81
  the use of commands like ADD and COPY. **Users must now use Docker >= 1.5.0**
51
-
52
- * Passwordless suite instance Docker container login (SSH), using a
82
+ - Passwordless suite instance Docker container login (SSH), using a
53
83
  generated key pair.
54
-
55
- * Support for sharing a host device with suite instance Docker containers.
56
-
57
- * README YAML highlighting.
84
+ - Support for sharing a host device with suite instance Docker containers.
85
+ - README YAML highlighting.
58
86
 
59
87
  ## 2.1.0
60
88
 
61
- * Use `NUL` instead of `/dev/null` on Windows for output redirection
89
+ - Use `NUL` instead of `/dev/null` on Windows for output redirection
62
90
 
63
91
  ## 2.0.0
64
92
 
65
- * Use Docker `top` and `port` instead of `inspect`
66
-
67
- * Don't create the kitchen user if it already exists
68
-
69
- * Docker container capabilities options: cap_add, cap_drop
70
-
71
- * Docker security profile option (SELinux/AppArmor): security_opt
72
-
73
- * wait_for_sshd option (boolean)
74
-
75
- * Create `/etc/sudoers.d` if missing
76
-
77
- * Fixed option deprecation warnings, require Docker >= 1.2
93
+ - Use Docker `top` and `port` instead of `inspect`
94
+ - Don't create the kitchen user if it already exists
95
+ - Docker container capabilities options: cap_add, cap_drop
96
+ - Docker security profile option (SELinux/AppArmor): security_opt
97
+ - wait_for_sshd option (boolean)
98
+ - Create `/etc/sudoers.d` if missing
99
+ - Fixed option deprecation warnings, require Docker >= 1.2
78
100
 
79
101
  ## 1.7.0
80
102
 
81
- * Ensure a container id is set before attempting to inspect a container
103
+ - Ensure a container id is set before attempting to inspect a container
82
104
 
83
105
  ## 1.6.0
84
106
 
85
- * `publish_all` option to publish all ports to the host interface
86
-
87
- * `instance_name` option to name the Docker container
88
-
89
- * `links` option to link suite instance Docker containers
90
-
91
- * `socket` option will now default to ENV `DOCKER_HOST` if set
92
-
93
- * Fixed verify dependencies output redirection
94
-
95
- * Added `fedora` to platform names
96
-
97
- * Support for `gentoo` and `gentoo-paludis` platforms
98
-
99
- * Adding sudo rule to `/etc/sudoers.d/#{username}` in addition to `/etc/sudoers`
107
+ - `publish_all` option to publish all ports to the host interface
108
+ - `instance_name` option to name the Docker container
109
+ - `links` option to link suite instance Docker containers
110
+ - `socket` option will now default to ENV `DOCKER_HOST` if set
111
+ - Fixed verify dependencies output redirection
112
+ - Added `fedora` to platform names
113
+ - Support for `gentoo` and `gentoo-paludis` platforms
114
+ - Adding sudo rule to `/etc/sudoers.d/#{username}` in addition to `/etc/sudoers`
data/README.md CHANGED
@@ -5,7 +5,9 @@
5
5
  [![Coverage](https://img.shields.io/codecov/c/github/test-kitchen/kitchen-docker.svg)](https://codecov.io/github/test-kitchen/kitchen-docker)
6
6
  [![License](https://img.shields.io/badge/license-Apache_2-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
7
7
 
8
- A Test Kitchen Driver for Docker.
8
+ A Test Kitchen Driver and Transport for Docker.
9
+
10
+ ***MAINTAINERS WANTED***: This Test-Kitchen driver is currently without a maintainer and has many known issues. If you're interested in maintaining this driver for the long run including expanding the CI testing please reach out on [Chef Community Slack: #test-kitchen](https://chefcommunity.slack.com/archives/C2B6G1WCQ). Until such a time that this driver is maintained we highly recommend the [kitchen-dokken](https://github.com/test-kitchen/kitchen-dokken) for Chef Infra testing with Docker containers.
9
11
 
10
12
  ## Requirements
11
13
 
@@ -15,12 +17,14 @@ A Test Kitchen Driver for Docker.
15
17
 
16
18
  Please read the Test Kitchen [docs][test_kitchen_docs] for more details.
17
19
 
18
- Example `.kitchen.local.yml`:
20
+ Example (Linux) `.kitchen.local.yml`:
19
21
 
20
22
  ```yaml
21
23
  ---
22
24
  driver:
23
25
  name: docker
26
+ env_variables:
27
+ TEST_KEY: TEST_VALUE
24
28
 
25
29
  platforms:
26
30
  - name: ubuntu
@@ -32,6 +36,30 @@ platforms:
32
36
  platform: rhel
33
37
  run_list:
34
38
  - recipe[yum]
39
+
40
+ transport:
41
+ name: docker
42
+ ```
43
+
44
+ Example (Windows) `.kitchen.local.yml`:
45
+
46
+ ```yaml
47
+ ---
48
+ driver:
49
+ name: docker
50
+
51
+ platforms:
52
+ - name: windows
53
+ driver_config:
54
+ image: mcr.microsoft.com/windows/servercore:1607
55
+ platform: windows
56
+ run_list:
57
+ - recipe[chef_client]
58
+
59
+ transport:
60
+ name: docker
61
+ env_variables:
62
+ TEST_KEY: TEST_VALUE
35
63
  ```
36
64
 
37
65
  ## Default Configuration
@@ -44,8 +72,8 @@ Examples:
44
72
  ```yaml
45
73
  ---
46
74
  platforms:
47
- - name: ubuntu-12.04
48
- - name: centos-6.4
75
+ - name: ubuntu-18.04
76
+ - name: centos-7
49
77
  ```
50
78
 
51
79
  This will effectively generate a configuration similar to:
@@ -53,13 +81,13 @@ This will effectively generate a configuration similar to:
53
81
  ```yaml
54
82
  ---
55
83
  platforms:
56
- - name: ubuntu-12.04
84
+ - name: ubuntu-18.04
57
85
  driver_config:
58
- image: ubuntu:12.04
86
+ image: ubuntu:18.04
59
87
  platform: ubuntu
60
- - name: centos-6.4
88
+ - name: centos-7
61
89
  driver_config:
62
- image: centos:6.4
90
+ image: centos:7
63
91
  platform: centos
64
92
  ```
65
93
 
@@ -83,11 +111,9 @@ Examples:
83
111
 
84
112
  ### socket
85
113
 
86
- The Docker daemon socket to use. By default, Docker will listen on
87
- `unix:///var/run/docker.sock`, and no configuration here is required. If
88
- Docker is binding to another host/port or Unix socket, you will need to set
89
- this option. If a TCP socket is set, its host will be used for SSH access
90
- to suite containers.
114
+ The Docker daemon socket to use. By default, Docker will listen on `unix:///var/run/docker.sock` (On Windows, `npipe:////./pipe/docker_engine`),
115
+ and no configuration here is required. If Docker is binding to another host/port or Unix socket, you will need to set this option.
116
+ If a TCP socket is set, its host will be used for SSH access to suite containers.
91
117
 
92
118
  Examples:
93
119
 
@@ -99,10 +125,27 @@ Examples:
99
125
  socket: tcp://docker.example.com:4242
100
126
  ```
101
127
 
102
- If you use [Docker for Windows](https://docs.docker.com/docker-for-windows/)
103
-
128
+ If you are using the InSpec verifier on Windows, using named pipes for the Docker engine will not work with the Docker transport.
129
+ Set the socket option with the TCP socket address of the Docker engine as shown below:
104
130
  ```yaml
105
- socket: npipe:////./pipe/docker_engine
131
+ socket: tcp://localhost:2375
132
+ ```
133
+
134
+ The Docker engine must be configured to listen on a TCP port (default port is 2375). This can be configured by editing the configuration file
135
+ (usually located in `C:\ProgramData\docker\config\daemon.json`) and adding the hosts value:
136
+ ```
137
+ "hosts": ["tcp://0.0.0.0:2375"]
138
+ ```
139
+
140
+ Example configuration is shown below:
141
+ ```
142
+ {
143
+ "registry-mirrors": [],
144
+ "insecure-registries": [],
145
+ "debug": true,
146
+ "experimental": false,
147
+ "hosts": ["tcp://0.0.0.0:2375"]
148
+ }
106
149
  ```
107
150
 
108
151
  If you use [Boot2Docker](https://github.com/boot2docker/boot2docker)
@@ -115,7 +158,6 @@ $MACHINE)"` then use the following:
115
158
  socket: tcp://192.168.59.103:2375
116
159
  ```
117
160
 
118
-
119
161
  ### image
120
162
 
121
163
  The Docker image to use as the base for the suite containers. You can find
@@ -124,15 +166,30 @@ images using the [Docker Index][docker_index].
124
166
  The default will be computed, using the platform name (see the Default
125
167
  Configuration section for more details).
126
168
 
169
+ ### isolation
170
+
171
+ The isolation technology for the container. This is not set by default and will use the default container isolation settings.
172
+
173
+ For example, the following driver configuration options can be used to specify the container isolation technology for Windows containers:
174
+ ```yaml
175
+ # Hyper-V
176
+ isolation: hyperv
177
+
178
+ # Process
179
+ isolation: process
180
+ ```
181
+
127
182
  ### platform
128
183
 
129
184
  The platform of the chosen image. This is used to properly bootstrap the
130
185
  suite container for Test Kitchen. Kitchen Docker currently supports:
131
186
 
187
+ * `arch`
132
188
  * `debian` or `ubuntu`
133
- * `rhel` or `centos`
189
+ * `amazonlinux`, `rhel`, `centos`, `fedora`, `oraclelinux`, `almalinux` or `rockylinux`
134
190
  * `gentoo` or `gentoo-paludis`
135
- * `opensuse` or `sles`
191
+ * `opensuse/tumbleweed`, `opensuse/leap`, `opensuse` or `sles`
192
+ * `windows`
136
193
 
137
194
  The default will be computed, using the platform name (see the Default
138
195
  Configuration section for more details).
@@ -181,6 +238,17 @@ driver_config:
181
238
  provision_command: curl -L https://www.opscode.com/chef/install.sh | bash
182
239
  require_chef_omnibus: false
183
240
  ```
241
+ ### env_variables
242
+
243
+ Adds environment variables to Docker container
244
+
245
+ Examples:
246
+
247
+ ```yaml
248
+ env_variables:
249
+ TEST_KEY_1: TEST_VALUE
250
+ SOME_VAR: SOME_VALUE
251
+ ```
184
252
 
185
253
  ### use\_cache
186
254
 
@@ -259,6 +327,39 @@ Examples:
259
327
  - rvm
260
328
  ```
261
329
 
330
+ ### mount
331
+
332
+ Attach a filesystem mount to the container (**NOTE:** supported only in docker
333
+ 17.05 and newer).
334
+
335
+ Examples:
336
+
337
+ ```yaml
338
+ mount: type=volume,source=my-volume,destination=/path/in/container
339
+ ```
340
+
341
+ ```yaml
342
+ mount:
343
+ - type=volume,source=my-volume,destination=/path/in/container
344
+ - type=tmpfs,tmpfs-size=512M,destination=/path/to/tmpdir
345
+ ```
346
+
347
+ ### tmpfs
348
+
349
+ Adds a tmpfs volume(s) to the suite container.
350
+
351
+ Examples:
352
+
353
+ ```yaml
354
+ tmpfs: /tmp
355
+ ```
356
+
357
+ ```yaml
358
+ tmpfs:
359
+ - /tmp:exec
360
+ - /run
361
+ ```
362
+
262
363
  ### dns
263
364
 
264
365
  Adjusts `resolv.conf` to use the dns servers specified. Otherwise use
@@ -495,6 +596,20 @@ Examples:
495
596
  use_internal_docker_network: true
496
597
  ```
497
598
 
599
+ ### docker_platform
600
+
601
+ Configure the CPU platform (architecture) used by docker to build the image.
602
+
603
+ Examples:
604
+
605
+ ```yaml
606
+ docker_platform: linux/arm64
607
+ ```
608
+
609
+ ```yaml
610
+ docker_platform: linux/amd64
611
+ ```
612
+
498
613
  ## Development
499
614
 
500
615
  * Source hosted at [GitHub][repo]
@@ -534,7 +649,7 @@ limitations under the License.
534
649
  [docker_upstart_issue]: https://github.com/dotcloud/docker/issues/223
535
650
  [docker_index]: https://index.docker.io/
536
651
  [docker_default_image]: https://index.docker.io/_/base/
537
- [test_kitchen_docs]: http://kitchen.ci/docs/getting-started/
652
+ [test_kitchen_docs]: https://kitchen.ci/docs/getting-started/introduction/
538
653
  [chef_omnibus_dl]: https://downloads.chef.io/chef-client/
539
654
  [cpu_shares]: https://docs.fedoraproject.org/en-US/Fedora/17/html/Resource_Management_Guide/sec-cpu.html
540
655
  [memory_limit]: https://docs.fedoraproject.org/en-US/Fedora/17/html/Resource_Management_Guide/sec-memory.html
data/docker.ps1 ADDED
@@ -0,0 +1,9 @@
1
+ # This script is used to configure the Docker service for Windows builds in Travis CI
2
+ Write-Host "Configuring Docker service to listen on TCP port 2375..."
3
+ $dockerSvcArgs = (Get-WmiObject Win32_Service | ?{$_.Name -eq 'docker'} | Select PathName).PathName
4
+ $dockerSvcArgs = "$dockerSvcArgs -H tcp://0.0.0.0:2375 -H npipe:////./pipe/docker_engine"
5
+ Write-Host "Docker Service Args: $dockerSvcArgs"
6
+
7
+ Get-WmiObject Win32_Service -Filter "Name='docker'" | Invoke-WmiMethod -Name Change -ArgumentList @($null,$null,$null,$null,$null, $dockerSvcArgs) | Out-Null
8
+
9
+ Restart-Service docker -Force -Verbose
@@ -1,11 +1,10 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'kitchen/driver/docker_version'
3
+ require 'kitchen/docker/docker_version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
6
  spec.name = 'kitchen-docker'
8
- spec.version = Kitchen::Driver::DOCKER_VERSION
7
+ spec.version = Kitchen::Docker::DOCKER_VERSION
9
8
  spec.authors = ['Sean Porter']
10
9
  spec.email = ['portertech@gmail.com']
11
10
  spec.description = %q{A Docker Driver for Test Kitchen}
@@ -14,7 +13,6 @@ Gem::Specification.new do |spec|
14
13
  spec.license = 'Apache 2.0'
15
14
 
16
15
  spec.files = `git ls-files`.split($/)
17
- spec.executables = []
18
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
17
  spec.require_paths = ['lib']
20
18
 
@@ -36,5 +34,6 @@ Gem::Specification.new do |spec|
36
34
  spec.add_development_dependency 'codecov', '~> 0.0', '>= 0.0.2'
37
35
 
38
36
  # Integration testing gems.
39
- spec.add_development_dependency 'kitchen-inspec', '~> 0.14'
37
+ spec.add_development_dependency 'kitchen-inspec', '~> 2.0'
38
+ spec.add_development_dependency 'train', '>= 2.1', '< 4.0' # validate 4.x when it's released
40
39
  end