docker-builder 0.1.30 → 0.1.31

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 256e96eb177d0c4fd4fbc0f79a06d3ab615c3f16
4
- data.tar.gz: 648599fd31fa6686b2b67c1d577c40896041873e
3
+ metadata.gz: 31f8f20a4c06dcd857f30ecd4c51150aa00696e1
4
+ data.tar.gz: 1e421d96878d8ba19816b26e6244e6453530c3c9
5
5
  SHA512:
6
- metadata.gz: 10f38caa907ddf6e402031bb37e0fbe644c1a70ac49eefcfc57225725425b81b9172cb7daaa036abfbcb4c856c2dcba95b578181db92d219730f4a6f4f76944f
7
- data.tar.gz: ae32df32af0100d09903fb461b887af2d65a0b691976dbba273002a9e18be3cf7da8346383bd5252eb25b3be215e7518bf1b48f4d14f0f7ac3309810b9ab5483
6
+ metadata.gz: 1661019db55a933fb618017c8a6ae4c397fdd2e4a70685393a69fe01ad2779ebbbd4dfe32ef2076bb48c9e7924e299f6e13ab27395e75cca968acede7ca2037e
7
+ data.tar.gz: 29260015299048be1cd780983f4631b5d787c365a0fd7f3b1ff2a73973ba1742819ff0b0131bd9b212169cc0673daf1ef2a7d99edbea0b59681a5504c0900c68
@@ -1,2 +1,2 @@
1
1
  gem build docker-builder.gemspec
2
- gem install ./docker-builder-0.1.30.gem
2
+ gem install ./docker-builder-0.1.31.gem
@@ -162,12 +162,15 @@ class Manager
162
162
  # create
163
163
  cmd %Q(docker create --name #{settings.container_name} #{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']})
164
164
 
165
- # second network
166
- network2 = settings['docker']['network_secondary']
167
- if network2
168
- ip = network2['ip']
169
- s_ip = "--ip #{ip}" if ip
170
- cmd %Q(docker network connect #{s_ip} #{network2['net']} #{settings.container_name})
165
+ # networks
166
+ networks = settings['docker'].fetch('network', {}).fetch('networks', [])
167
+ if networks
168
+ networks.each do |net|
169
+ ip = net['ip']
170
+ s_ip = "--ip #{ip}" if ip
171
+ #puts %Q(docker network connect #{s_ip} #{net['net']} #{settings.container_name})
172
+ cmd %Q(docker network connect #{s_ip} #{net['net']} #{settings.container_name})
173
+ end
171
174
  end
172
175
  end
173
176
 
@@ -184,22 +187,21 @@ class Manager
184
187
 
185
188
 
186
189
  def self.setup_container_after_start(settings)
187
- # second network
188
- network2 = settings['docker']['network_secondary']
189
190
 
190
- # fixes
191
- if network2
192
- gateway = network2['gateway']
191
+ # default gateway
192
+ network= settings['docker']['network']
193
+ if network
194
+ gateway = network['default_gateway']
193
195
 
194
196
  if gateway
195
- puts "setup network gateway"
196
-
197
197
  # fix default gateway
198
- cmd %Q(docker exec #{settings.container_name} ip route change default via #{gateway} dev eth1)
198
+ #cmd %Q(docker exec #{settings.container_name} ip route change default via #{gateway} dev eth1)
199
+ cmd %Q(docker exec #{settings.container_name} ip route change default via #{gateway})
199
200
  end
200
-
201
201
  end
202
202
 
203
+
204
+
203
205
  # fix hosts
204
206
  container_hosts = settings['docker']['hosts'] || []
205
207
  container_hosts.each do |r|
@@ -1,3 +1,3 @@
1
1
  module DockerBuilder
2
- VERSION = "0.1.30"
2
+ VERSION = "0.1.31"
3
3
  end
data/readme.md CHANGED
@@ -184,6 +184,57 @@ http://localhost:8080
184
184
 
185
185
 
186
186
 
187
+ # Install Docker container. Overview
188
+
189
+ Process:
190
+ * Create container - docker create
191
+ * setup network and other settings for container
192
+
193
+ * run provision to setup host machine. Script is running on the host machine.
194
+ ```
195
+ {
196
+ 'install'=>
197
+ {
198
+ 'host'=> {type: 'ruby', ..}
199
+ }
200
+ ...
201
+ }
202
+ ```
203
+
204
+ * run provision to setup not running container. Run script which can copy/change files in container.
205
+ ```
206
+ {
207
+ 'install'=>
208
+ {
209
+ 'setup'=> {type: 'ruby'}
210
+ }
211
+ ...
212
+ }
213
+ ```
214
+ * run container with `docker run`. Specify env variables, hostname and other options
215
+ * first provision of container - bootstrap script. Run script from inside running container only once.
216
+ Script should be located inside container.
217
+ ```
218
+ {
219
+ 'install'=>
220
+ {
221
+ 'bootstrap'=> {type: 'chef'}
222
+ }
223
+ ```
224
+
225
+ * provision to init container. Run script every time after container starts. Script should be located inside container.
226
+ ```
227
+ {
228
+ 'install'=>
229
+ {
230
+ 'init'=> {type: 'chef'}
231
+ }
232
+ ```
233
+
234
+ * Use lock file to make sure the container does not start until the provision is finished.
235
+
236
+
237
+
187
238
 
188
239
 
189
240
  # Basic usage
@@ -621,3 +672,74 @@ RUN chmod +x /opt/bootstrap/bootstrap.sh
621
672
 
622
673
  ```
623
674
 
675
+
676
+
677
+ # Run docker container
678
+
679
+ ## Network
680
+
681
+ * config
682
+ ```
683
+ 'docker'=> {
684
+ ..
685
+ 'network': {
686
+ default_gateway: '192.168.1.1',
687
+ networks: {
688
+ {net: 'bridge'}, # default docker bridge
689
+ {net: 'mybridge1', ip: '10.1.0.12'},
690
+ {net: 'my_overlay1', ip: '51.1.0.15'},
691
+ }
692
+
693
+ }
694
+
695
+ }
696
+ ```
697
+
698
+
699
+
700
+ ## multiple networks
701
+
702
+ ```
703
+ 'docker'=> {
704
+ ..
705
+ 'network': {
706
+ networks: {
707
+ {net: 'mybridge1', ip: '10.1.0.12'},
708
+ {net: 'my_overlay1', ip: '51.1.0.15'},
709
+ }
710
+
711
+ }
712
+
713
+ }
714
+ ```
715
+
716
+ * example:
717
+
718
+ * create networks
719
+ ```
720
+ # bridge
721
+
722
+ # macvlan
723
+ ```
724
+
725
+ see docker networks:
726
+ ```
727
+ docker network ls
728
+ ```
729
+
730
+
731
+ in this example container will be connected to three networks:
732
+ * docker default bridge named 'bridge'
733
+ * custom docker network named 'mybridge1' with ip='10.1.0.12'
734
+ * custom docker network named 'my_overlay1'
735
+
736
+
737
+
738
+
739
+ * check
740
+ ```
741
+ ip route
742
+
743
+ ...
744
+
745
+ ```
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.30
4
+ version: 0.1.31
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-08 00:00:00.000000000 Z
11
+ date: 2017-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler