chef-provisioning-docker 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -2
- data/README.md +52 -46
- data/chef-provisioning-docker.gemspec +3 -3
- data/lib/chef/provisioning/docker_driver/version.rb +1 -1
- metadata +13 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67a2fc31d0f114e8bec4e4c6e1bc2e5456c607ca
|
4
|
+
data.tar.gz: 6115c20e614e033c4329be5cba57e8d0e75931a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0db33bc661a603572c3babe44befbbba70b31add770a3945a9df76da2692ef9c16343e53ea7dd4d8f3858dd65f366944147e98ba770ec2c88efbf843d1cca93
|
7
|
+
data.tar.gz: d1b82d864047c8fc1826c71a8c4a1e42848872175bc0c2006975a188f7cd0a68faee735ef02adc144af934964d221ee8f4ef86c6c42126f1cbb33189d9bd1264
|
data/Gemfile
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
|
-
gemfile
|
3
2
|
gemspec
|
4
3
|
|
5
|
-
gem
|
4
|
+
gem "chef", git: "https://github.com/chef/chef" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.2.2") # until stable 12.14 is released (won't load new cheffish and such otherwise)
|
data/README.md
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# chef-provisioning-docker
|
2
2
|
|
3
|
+
[](https://travis-ci.org/chef/chef-provisioning-docker) [](http://badge.fury.io/rb/chef-provisioning-docker)
|
4
|
+
|
3
5
|
How to use:
|
4
6
|
|
5
|
-
First you need to ensure that Docker is running. This can be done on a Linux host using Docker's installers or on OSX using boot2docker. Once you have that, you can install the dependencies with Bundler and then use the Docker
|
7
|
+
First you need to ensure that Docker is running. This can be done on a Linux host using Docker's installers or on OSX using boot2docker. Once you have that, you can install the dependencies with Bundler and then use the Docker like the following:
|
6
8
|
|
7
9
|
```
|
8
10
|
CHEF_DRIVER=docker bundle exec chef-client -z docker_ubuntu_image.rb
|
@@ -21,59 +23,61 @@ with_driver 'docker'
|
|
21
23
|
machine 'wario' do
|
22
24
|
recipe 'openssh::default'
|
23
25
|
|
24
|
-
machine_options
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
machine_options(
|
27
|
+
docker_options: {
|
28
|
+
base_image: {
|
29
|
+
name: 'ubuntu',
|
30
|
+
repository: 'ubuntu',
|
31
|
+
tag: '14.04'
|
32
|
+
},
|
33
|
+
:command => '/usr/sbin/sshd -p 8022 -D',
|
31
34
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
#ENV (Environment Variables)
|
36
|
+
#Set any env var in the container by using one or more -e flags, even overriding those already defined by the developer with a Dockerfile ENV
|
37
|
+
:env => {
|
38
|
+
"deep" => 'purple',
|
39
|
+
"led" => 'zeppelin'
|
40
|
+
},
|
38
41
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
+
# Ports can be one of two forms:
|
43
|
+
# src_port (string or integer) is a pass-through, i.e 8022 or "9933"
|
44
|
+
# src:dst (string) is a map from src to dst, i.e "8022:8023" maps 8022 externally to 8023 in the container
|
42
45
|
|
43
|
-
|
44
|
-
|
46
|
+
# Example (multiple):
|
47
|
+
:ports => [8022, "8023:9000", "9500"],
|
45
48
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
+
# Examples (single):
|
50
|
+
:ports => 1234,
|
51
|
+
:ports => "2345:6789",
|
49
52
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
53
|
+
# Volumes can be one of three forms:
|
54
|
+
# src_volume (string) is volume to add to container, i.e. creates new volume inside container at "/tmp"
|
55
|
+
# src:dst (string) mounts host's directory src to container's dst, i.e "/tmp:/tmp1" mounts host's directory /tmp to container's /tmp1
|
56
|
+
# src:dst:mode (string) mounts host's directory src to container's dst with the specified mount option, i.e "/:/rootfs:ro" mounts read-only host's root (/) folder to container's /rootfs
|
57
|
+
# See more details on Docker volumes at https://github.com/docker/docker/blob/master/docs/sources/userguide/dockervolumes.md .
|
55
58
|
|
56
|
-
|
57
|
-
|
59
|
+
# Example (single):
|
60
|
+
:volumes => "/tmp",
|
58
61
|
|
59
|
-
|
60
|
-
|
62
|
+
# Example (multiple):
|
63
|
+
:volumes => ["/tmp:/tmp", "/:/rootfs:ro"],
|
61
64
|
|
62
|
-
|
63
|
-
|
65
|
+
# if you need to keep stdin open (i.e docker run -i)
|
66
|
+
# :keep_stdin_open => true
|
64
67
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
68
|
+
},
|
69
|
+
# optional, default timeout is 600
|
70
|
+
docker_connection: {
|
71
|
+
:read_timeout => 1000,
|
72
|
+
}
|
73
|
+
)
|
70
74
|
|
71
75
|
end
|
72
76
|
```
|
73
77
|
|
74
78
|
## Machine images
|
75
79
|
|
76
|
-
This
|
80
|
+
This supports the new machine image paradigm; with Docker you can build a base image, save that and use it to create a new container. Here is an example of this:
|
77
81
|
|
78
82
|
```ruby
|
79
83
|
require 'chef/provisioning/docker_driver'
|
@@ -81,25 +85,27 @@ require 'chef/provisioning/docker_driver'
|
|
81
85
|
machine_image 'ssh_server' do
|
82
86
|
recipe 'openssh'
|
83
87
|
|
84
|
-
machine_options
|
88
|
+
machine_options(
|
89
|
+
:docker_options => {
|
85
90
|
:base_image => {
|
86
91
|
:name => 'ubuntu',
|
87
92
|
:repository => 'ubuntu',
|
88
93
|
:tag => '14.04'
|
89
94
|
}
|
90
|
-
|
95
|
+
}
|
96
|
+
)
|
91
97
|
end
|
92
98
|
|
93
99
|
machine 'ssh00' do
|
94
100
|
from_image 'ssh_server'
|
95
101
|
|
96
|
-
machine_options
|
102
|
+
machine_options(
|
103
|
+
:docker_options => {
|
97
104
|
:command => '/usr/sbin/sshd -D -o UsePAM=no -o UsePrivilegeSeparation=no -o PidFile=/tmp/sshd.pid',
|
98
105
|
:ports => [22]
|
99
|
-
|
106
|
+
}
|
107
|
+
)
|
100
108
|
end
|
101
109
|
```
|
102
110
|
|
103
|
-
This will create a docker container based on Ubuntu 14.04 and
|
104
|
-
then execute the openssh recipe and run the /usr/sbin/sshd command
|
105
|
-
as the container's run command.
|
111
|
+
This will create a docker container based on Ubuntu 14.04 and then execute the openssh recipe and run the /usr/sbin/sshd command as the container's run command.
|
@@ -9,11 +9,11 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.summary = 'Provisioner for creating Docker containers in Chef Provisioning.'
|
10
10
|
s.description = s.summary
|
11
11
|
s.author = 'Tom Duffield'
|
12
|
-
s.email = 'tom@
|
13
|
-
s.homepage = 'https://github.com/
|
12
|
+
s.email = 'tom@chef.io'
|
13
|
+
s.homepage = 'https://github.com/chef/chef-provisioning-docker'
|
14
14
|
|
15
15
|
s.add_dependency 'chef'
|
16
|
-
s.add_dependency 'chef-provisioning', '
|
16
|
+
s.add_dependency 'chef-provisioning', '>= 1.0', '< 3.0'
|
17
17
|
s.add_dependency 'docker-api', '~> 1.26', '>= 1.26.2'
|
18
18
|
s.add_dependency 'minitar'
|
19
19
|
s.add_dependency 'sys-proctable'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-provisioning-docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Duffield
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|
@@ -28,16 +28,22 @@ dependencies:
|
|
28
28
|
name: chef-provisioning
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.0'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '3.0'
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
|
-
- - "
|
41
|
+
- - ">="
|
39
42
|
- !ruby/object:Gem::Version
|
40
43
|
version: '1.0'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.0'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: docker-api
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,7 +135,7 @@ dependencies:
|
|
129
135
|
- !ruby/object:Gem::Version
|
130
136
|
version: '0'
|
131
137
|
description: Provisioner for creating Docker containers in Chef Provisioning.
|
132
|
-
email: tom@
|
138
|
+
email: tom@chef.io
|
133
139
|
executables: []
|
134
140
|
extensions: []
|
135
141
|
extra_rdoc_files:
|
@@ -152,7 +158,7 @@ files:
|
|
152
158
|
- spec/docker_support.rb
|
153
159
|
- spec/integration/primitives_spec.rb
|
154
160
|
- spec/spec_helper.rb
|
155
|
-
homepage: https://github.com/
|
161
|
+
homepage: https://github.com/chef/chef-provisioning-docker
|
156
162
|
licenses: []
|
157
163
|
metadata: {}
|
158
164
|
post_install_message:
|
@@ -171,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
177
|
version: '0'
|
172
178
|
requirements: []
|
173
179
|
rubyforge_project:
|
174
|
-
rubygems_version: 2.
|
180
|
+
rubygems_version: 2.5.1
|
175
181
|
signing_key:
|
176
182
|
specification_version: 4
|
177
183
|
summary: Provisioner for creating Docker containers in Chef Provisioning.
|