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 +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
|