docker-builder 0.1.41 → 0.1.43
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/install_local.sh +1 -1
- data/lib/docker_builder/manager.rb +28 -16
- data/lib/docker_builder/version.rb +1 -1
- data/readme.md +13 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5397c647c4db18a0ba0db4bf1e34c652e390d786
|
4
|
+
data.tar.gz: d22e380da70140e7cb6a705ca12e505011df2c1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbaa35b3d1e1d622c9b4f544de84978db8f85f485f04b59d1f29021aa776d758bc1314031cb5431dcbd7eb30d823ad2e71d95805df45ab15158e7f9e01b159f4
|
7
|
+
data.tar.gz: 6958f5830f5f8abd0d7b76fe05c741cafe937ce23442dbfef745217775ebdb7d9580dd65a6986d967e6b14965992acef0aac9188f8063d758bf9787b2ee635ab
|
data/install_local.sh
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
gem build docker-builder.gemspec
|
2
|
-
gem install ./docker-builder-0.1.
|
2
|
+
gem install ./docker-builder-0.1.43.gem
|
@@ -156,18 +156,6 @@ class Manager
|
|
156
156
|
setup_network(settings)
|
157
157
|
|
158
158
|
|
159
|
-
### BEFORE START
|
160
|
-
|
161
|
-
# run setup provision scripts
|
162
|
-
setup_scripts = (settings['provision']['setup'] rescue [])
|
163
|
-
if setup_scripts
|
164
|
-
setup_scripts.each do |script|
|
165
|
-
_run_setup_script(settings, script)
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
|
170
|
-
|
171
159
|
### START && run provision after start
|
172
160
|
start_container(name, settings)
|
173
161
|
|
@@ -175,8 +163,20 @@ class Manager
|
|
175
163
|
end
|
176
164
|
|
177
165
|
def self.create_container(settings)
|
166
|
+
#puts "networks: #{settings['docker']['network']}"
|
178
167
|
# create
|
179
|
-
|
168
|
+
net_options = ""
|
169
|
+
networks = settings['docker'].fetch('network', {}).fetch('networks', [])
|
170
|
+
if networks && networks[0]
|
171
|
+
network = networks[0]
|
172
|
+
#puts "network=#{network}"
|
173
|
+
net_options << "--net #{network['net']} "
|
174
|
+
net_options << "--ip #{network['ip']} " if network['ip']
|
175
|
+
net_options << "--mac-address #{network['mac_address']} " if network['mac_address']
|
176
|
+
end
|
177
|
+
|
178
|
+
|
179
|
+
cmd %Q(docker create --name #{settings.container_name} #{net_options} #{settings.docker_ports_string} #{settings.docker_volumes_string} #{settings.docker_volumes_from_string} #{settings.docker_links_string} #{settings.run_extra_options_string} #{settings.run_env_variables_string} #{settings.image_name} #{settings['docker']['command']} #{settings['docker']['run_options']})
|
180
180
|
end
|
181
181
|
|
182
182
|
|
@@ -206,6 +206,17 @@ class Manager
|
|
206
206
|
|
207
207
|
|
208
208
|
def self.start_container(name, settings)
|
209
|
+
### BEFORE START
|
210
|
+
|
211
|
+
# run setup provision scripts
|
212
|
+
setup_scripts = (settings['provision']['setup'] rescue [])
|
213
|
+
if setup_scripts
|
214
|
+
setup_scripts.each do |script|
|
215
|
+
_run_setup_script(settings, script)
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
|
209
220
|
# prepare before start
|
210
221
|
prepare_before_start(settings)
|
211
222
|
|
@@ -243,7 +254,7 @@ class Manager
|
|
243
254
|
def self.prepare_before_start(settings)
|
244
255
|
puts "prepare_before_start"
|
245
256
|
|
246
|
-
#
|
257
|
+
# prepare for chef scripts
|
247
258
|
bootstrap_scripts = (settings['provision']['bootstrap'] rescue [])
|
248
259
|
|
249
260
|
# before start
|
@@ -271,7 +282,7 @@ class Manager
|
|
271
282
|
def self.setup_container_after_start(settings)
|
272
283
|
|
273
284
|
# default gateway
|
274
|
-
|
285
|
+
|
275
286
|
network = settings['docker']['network']
|
276
287
|
if network
|
277
288
|
gateway = network['default_gateway']
|
@@ -282,7 +293,7 @@ class Manager
|
|
282
293
|
cmd %Q(docker exec #{settings.container_name} ip route change default via #{gateway})
|
283
294
|
end
|
284
295
|
end
|
285
|
-
|
296
|
+
|
286
297
|
|
287
298
|
|
288
299
|
# fix hosts
|
@@ -350,6 +361,7 @@ class Manager
|
|
350
361
|
end
|
351
362
|
|
352
363
|
def self._run_bootstrap_script(settings, script)
|
364
|
+
puts "run bs script #{script}"
|
353
365
|
if script['type']=='shell' && script['run_from']=='host'
|
354
366
|
return _run_bootstrap_script_shell_from_host(settings, script)
|
355
367
|
end
|
data/readme.md
CHANGED
@@ -193,10 +193,11 @@ Process:
|
|
193
193
|
* run provision to setup host machine. Script is running on the host machine.
|
194
194
|
```
|
195
195
|
{
|
196
|
-
'
|
196
|
+
'provision'=>[
|
197
197
|
{
|
198
198
|
'host'=> {type: 'ruby', ..}
|
199
|
-
}
|
199
|
+
},..
|
200
|
+
]
|
200
201
|
...
|
201
202
|
}
|
202
203
|
```
|
@@ -204,10 +205,12 @@ Process:
|
|
204
205
|
* run provision to setup not running container. Run script which can copy/change files in container.
|
205
206
|
```
|
206
207
|
{
|
207
|
-
'
|
208
|
+
'provision'=>[
|
208
209
|
{
|
209
210
|
'setup'=> {type: 'ruby'}
|
210
|
-
}
|
211
|
+
},
|
212
|
+
..
|
213
|
+
]
|
211
214
|
...
|
212
215
|
}
|
213
216
|
```
|
@@ -216,19 +219,21 @@ Process:
|
|
216
219
|
Script should be located inside container.
|
217
220
|
```
|
218
221
|
{
|
219
|
-
'
|
222
|
+
'provision'=>[
|
220
223
|
{
|
221
224
|
'bootstrap'=> {type: 'chef'}
|
222
|
-
}
|
225
|
+
},..
|
226
|
+
]
|
223
227
|
```
|
224
228
|
|
225
229
|
* provision to init container. Run script every time after container starts. Script should be located inside container.
|
226
230
|
```
|
227
231
|
{
|
228
|
-
'
|
232
|
+
'provision'=>[
|
229
233
|
{
|
230
234
|
'init'=> {type: 'chef'}
|
231
|
-
}
|
235
|
+
},..
|
236
|
+
]
|
232
237
|
```
|
233
238
|
|
234
239
|
* Use lock file to make sure the container does not start until the provision is finished.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.43
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Ivak
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|