docker-builder 0.1.30 → 0.1.31
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/install_local.sh +1 -1
- data/lib/docker_builder/manager.rb +17 -15
- data/lib/docker_builder/version.rb +1 -1
- data/readme.md +122 -0
- 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: 31f8f20a4c06dcd857f30ecd4c51150aa00696e1
|
4
|
+
data.tar.gz: 1e421d96878d8ba19816b26e6244e6453530c3c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1661019db55a933fb618017c8a6ae4c397fdd2e4a70685393a69fe01ad2779ebbbd4dfe32ef2076bb48c9e7924e299f6e13ab27395e75cca968acede7ca2037e
|
7
|
+
data.tar.gz: 29260015299048be1cd780983f4631b5d787c365a0fd7f3b1ff2a73973ba1742819ff0b0131bd9b212169cc0673daf1ef2a7d99edbea0b59681a5504c0900c68
|
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.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
|
-
#
|
166
|
-
|
167
|
-
if
|
168
|
-
|
169
|
-
|
170
|
-
|
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
|
-
#
|
191
|
-
|
192
|
-
|
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|
|
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.
|
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-
|
11
|
+
date: 2017-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|