chef-provisioning-docker 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://travis-ci.org/chef/chef-provisioning-docker.svg?branch=master)](https://travis-ci.org/chef/chef-provisioning-docker) [![Gem Version](https://badge.fury.io/rb/chef-provisioning-docker.svg)](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.
|