chef-provisioning-docker 0.5 → 0.5.1

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
  SHA1:
3
- metadata.gz: 64bbb414a5fb8938463923ee377c803551cca0af
4
- data.tar.gz: cbd0abd0ee49daceabce24aae225bfe4169bcab4
3
+ metadata.gz: fc7fa0f834bb6e06862b181f7e5ee731c269b829
4
+ data.tar.gz: d3e36c65b7d888de6c9d9e9912d6e98c629af9ac
5
5
  SHA512:
6
- metadata.gz: a51b6596e0b15f8a274da03d1cde0ce2781d27461c9daccdcfb4d5f0b4c43ea5c1c5f2c8d4f2a52c005197d266327b2841f52b3c78746c44e8ea6d66edddfa9b
7
- data.tar.gz: e520307871c6db26ea5502292f485a3bd55548c246cbf5c591ef89bbff8e990a145b847cc6c7e4e9da7d58256e7b691e5f517feaf5863f6fe6ddbe7463bed0b0
6
+ metadata.gz: 402ec362d657c594e500d59285d3079ab260f9cdb776763b5045061605c3f2af3986a829e571f89cc9e4d76b40752df441bce03da8a505a8b061c8d96ea492a3
7
+ data.tar.gz: 51339e56bf906960d49be71da0acde8c517145c3d9b6b3313d18cc72309b075183f01d279e4ebd9d6e3195ed312776ac760d28195c177bb7a6fb587e814c7f6e
data/README.md CHANGED
@@ -5,7 +5,7 @@ How to use:
5
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 like the following:
6
6
 
7
7
  ```
8
- CHEF_=docker bundle exec chef-client -z docker_ubuntu_image.rb
8
+ CHEF_DRIVER=docker bundle exec chef-client -z docker_ubuntu_image.rb
9
9
  ```
10
10
 
11
11
  This will run Chef-zero and use the description stored in docker_ubuntu_image.rb (the second example below). Note that some configuration syntax is likely to change a little bit so be sure to check the documentation.
@@ -27,6 +27,13 @@ machine 'wario' do
27
27
  :tag => '14.04'
28
28
  },
29
29
  :command => '/usr/sbin/sshd -p 8022 -D',
30
+
31
+ #ENV (Environment Variables)
32
+ #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
33
+ :env => {
34
+ "deep" => 'purple',
35
+ "led" => 'zeppelin'
36
+ }
30
37
 
31
38
  # Ports can be one of two forms:
32
39
  # src_port (string or integer) is a pass-through, i.e 8022 or "9933"
@@ -11,6 +11,7 @@ module DockerDriver
11
11
  # :ports => a list of port numbers to listen on
12
12
  def initialize(machine_spec, transport, convergence_strategy, opts = {})
13
13
  super(machine_spec, transport, convergence_strategy)
14
+ @env = opts[:env]
14
15
  @command = opts[:command]
15
16
  @ports = opts[:ports]
16
17
  @keep_stdin_open = opts[:keep_stdin_open]
@@ -26,7 +27,7 @@ module DockerDriver
26
27
  super action_handler
27
28
  if @command
28
29
  Chef::Log.debug("DockerContainerMachine converge complete, executing #{@command} in #{@container_name}")
29
- @transport.execute(@command, :detached => true, :read_only => true, :ports => @ports, :keep_stdin_open => @keep_stdin_open)
30
+ @transport.execute(@command, :env => @env ,:detached => true, :read_only => true, :ports => @ports, :keep_stdin_open => @keep_stdin_open)
30
31
  end
31
32
  end
32
33
 
@@ -32,6 +32,7 @@ module DockerDriver
32
32
 
33
33
  # Execute the specified command inside the container, returns a Mixlib::Shellout object
34
34
  # Options contains the optional keys:
35
+ # :env => env vars
35
36
  # :read_only => Do not commit this execute operation, just execute it
36
37
  # :ports => ports to listen on (-p command-line options)
37
38
  # :detached => true/false, execute this command in detached mode (for final program to run)
@@ -62,6 +63,13 @@ module DockerDriver
62
63
 
63
64
  args = ['docker', 'run', '--name', container_name]
64
65
 
66
+ if options[:env]
67
+ options[:env].each do |key, value|
68
+ args << '-e'
69
+ args << "#{key}=#{value}"
70
+ end
71
+ end
72
+
65
73
  if options[:detached]
66
74
  args << '--detach'
67
75
  end
@@ -115,7 +123,7 @@ module DockerDriver
115
123
  tarfile << block
116
124
  end
117
125
  rescue Docker::Error::ServerError
118
- if $!.message =~ /500/
126
+ if $!.message =~ /500/ || $!.message =~ /Could not find the file/
119
127
  return nil
120
128
  else
121
129
  raise
@@ -225,6 +225,7 @@ module DockerDriver
225
225
  transport,
226
226
  convergence_strategy,
227
227
  :command => docker_options[:command],
228
+ :env => docker_options[:env],
228
229
  :ports => [].push(docker_options[:ports]).flatten,
229
230
  :keep_stdin_open => docker_options[:keep_stdin_open]
230
231
  )
@@ -1,7 +1,7 @@
1
1
  class Chef
2
2
  module Provisioning
3
3
  module DockerDriver
4
- VERSION = '0.5'
4
+ VERSION = '0.5.1'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-provisioning-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.5'
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Duffield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-05 00:00:00.000000000 Z
11
+ date: 2014-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
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: '0.9'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.9'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: docker-api
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sys-proctable
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  description: Provisioner for creating Docker containers in Chef Provisioning.
@@ -121,12 +121,12 @@ require_paths:
121
121
  - lib
122
122
  required_ruby_version: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ">="
124
+ - - '>='
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  required_rubygems_version: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  requirements: []
@@ -136,4 +136,3 @@ signing_key:
136
136
  specification_version: 4
137
137
  summary: Provisioner for creating Docker containers in Chef Provisioning.
138
138
  test_files: []
139
- has_rdoc: