docker-builder 0.1.50 → 0.1.55
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{Rakefile → Rakefile_temp} +8 -7
- data/install_local.sh +1 -1
- data/lib/docker_builder.rb +4 -1
- data/lib/docker_builder/cli.rb +23 -56
- data/lib/docker_builder/config.rb +75 -34
- data/lib/docker_builder/config/dsl.rb +17 -1
- data/lib/docker_builder/{manager.rb → manager_container.rb} +25 -308
- data/lib/docker_builder/manager_image.rb +103 -0
- data/lib/docker_builder/provisioner/base.rb +188 -0
- data/lib/docker_builder/provisioner/{provisioner_chef.rb → chef.rb} +5 -1
- data/lib/docker_builder/server_settings.rb +34 -64
- data/lib/docker_builder/version.rb +1 -1
- data/readme.md +118 -79
- data/temp_config.rb +17 -0
- metadata +8 -58
- data/examples/example-apps-php/.chef/knife.rb +0 -6
- data/examples/example-apps-php/config.rb +0 -19
- data/examples/example-apps-php/servers/apps-php/.chef/knife.rb +0 -2
- data/examples/example-apps-php/servers/apps-php/config.rb +0 -69
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/README.md +0 -1
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/metadata.rb +0 -9
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/recipes/build.rb +0 -43
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/recipes/install.rb +0 -55
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/recipes/install_app.rb +0 -27
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/recipes/install_host.rb +0 -9
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/index.html.erb +0 -4
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/nginx-sites/app.conf.erb +0 -55
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/nginx-sites/app.conf.erb.1 +0 -55
- data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/nginx-sites/default.conf.erb +0 -45
- data/examples/example-apps-php/servers/apps-php/readme.md +0 -0
- data/examples/example-apps-php/temp/apps-php.1.json +0 -14
- data/examples/example-base-chef/.chef/knife.rb +0 -6
- data/examples/example-base-chef/config.rb +0 -19
- data/examples/example-base-chef/readme.md +0 -8
- data/examples/example-base-chef/servers/my/.chef/knife.rb +0 -2
- data/examples/example-base-chef/servers/my/config.rb +0 -53
- data/examples/example-base-chef/servers/my/cookbooks/my/README.md +0 -1
- data/examples/example-base-chef/servers/my/cookbooks/my/metadata.rb +0 -9
- data/examples/example-base-chef/servers/my/cookbooks/my/recipes/build.rb +0 -23
- data/examples/example-base-chef/servers/my/cookbooks/my/recipes/install.rb +0 -0
- data/examples/example-base-chef/servers/my/cookbooks/my/recipes/install_host.rb +0 -9
- data/examples/example-base-chef/servers/my/readme.md +0 -0
- data/examples/example-kafka-zookeeper/config.rb +0 -87
- data/examples/example-kafka-zookeeper/servers/kafka/Dockerfile +0 -21
- data/examples/example-kafka-zookeeper/servers/kafka/README.md +0 -78
- data/examples/example-kafka-zookeeper/servers/kafka/files/LICENSE +0 -202
- data/examples/example-kafka-zookeeper/servers/kafka/files/broker-list.sh +0 -5
- data/examples/example-kafka-zookeeper/servers/kafka/files/create-topics.sh +0 -32
- data/examples/example-kafka-zookeeper/servers/kafka/files/download-kafka.sh +0 -5
- data/examples/example-kafka-zookeeper/servers/kafka/files/start-kafka-shell.sh +0 -2
- data/examples/example-kafka-zookeeper/servers/kafka/files/start-kafka.sh +0 -67
- data/examples/example-nginx/config.rb +0 -19
- data/examples/example-nginx/servers/nginx/.chef/knife.rb +0 -8
- data/examples/example-nginx/servers/nginx/config.rb +0 -55
- data/examples/example-nginx/servers/nginx/cookbooks/nginx/README.md +0 -1
- data/examples/example-nginx/servers/nginx/cookbooks/nginx/metadata.rb +0 -9
- data/examples/example-nginx/servers/nginx/cookbooks/nginx/recipes/build.rb +0 -10
- data/examples/example-nginx/servers/nginx/cookbooks/nginx/recipes/install.rb +0 -28
- data/examples/example-nginx/servers/nginx/cookbooks/nginx/recipes/install_host.rb +0 -9
- data/examples/example-nginx/servers/nginx/cookbooks/nginx/templates/index.html.erb +0 -4
- data/examples/example-nginx/servers/nginx/cookbooks/nginx/templates/nginx-sites/default.conf.erb +0 -45
- data/examples/example-nginx/servers/nginx/readme.md +0 -0
- data/examples/example-nginx/servers/nginx/scripts/install.sh +0 -3
- data/examples/example-nginx/temp/ex_nginx.json +0 -20
- data/examples/example-nginx/temp/nginx.json +0 -1
- data/examples/example-swarm-redis/config.rb +0 -61
- data/examples/example-swarm-redis/readme.md +0 -10
- data/lib/docker_builder/temp.rb +0 -1
@@ -1,32 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
|
4
|
-
if [[ -z "$START_TIMEOUT" ]]; then
|
5
|
-
START_TIMEOUT=600
|
6
|
-
fi
|
7
|
-
|
8
|
-
start_timeout_exceeded=false
|
9
|
-
count=0
|
10
|
-
step=10
|
11
|
-
while netstat -lnt | awk '$4 ~ /:'$KAFKA_PORT'$/ {exit 1}'; do
|
12
|
-
echo "waiting for kafka to be ready"
|
13
|
-
sleep $step;
|
14
|
-
count=$(expr $count + $step)
|
15
|
-
if [ $count -gt $START_TIMEOUT ]; then
|
16
|
-
start_timeout_exceeded=true
|
17
|
-
break
|
18
|
-
fi
|
19
|
-
done
|
20
|
-
|
21
|
-
if $start_timeout_exceeded; then
|
22
|
-
echo "Not able to auto-create topic (waited for $START_TIMEOUT sec)"
|
23
|
-
exit 1
|
24
|
-
fi
|
25
|
-
|
26
|
-
if [[ -n $KAFKA_CREATE_TOPICS ]]; then
|
27
|
-
IFS=','; for topicToCreate in $KAFKA_CREATE_TOPICS; do
|
28
|
-
echo "creating topics: $topicToCreate"
|
29
|
-
IFS=':' read -a topicConfig <<< "$topicToCreate"
|
30
|
-
JMX_PORT='' $KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper $KAFKA_ZOOKEEPER_CONNECT --replication-factor ${topicConfig[2]} --partition ${topicConfig[1]} --topic "${topicConfig[0]}"
|
31
|
-
done
|
32
|
-
fi
|
@@ -1,5 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
|
3
|
-
mirror=$(curl --stderr /dev/null https://www.apache.org/dyn/closer.cgi\?as_json\=1 | jq -r '.preferred')
|
4
|
-
url="${mirror}kafka/${KAFKA_VERSION}/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz"
|
5
|
-
wget -q "${url}" -O "/tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz"
|
@@ -1,67 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
if [[ -z "$KAFKA_PORT" ]]; then
|
4
|
-
export KAFKA_PORT=9092
|
5
|
-
fi
|
6
|
-
if [[ -z "$KAFKA_ADVERTISED_PORT" ]]; then
|
7
|
-
export KAFKA_ADVERTISED_PORT=$(docker port `hostname` $KAFKA_PORT | sed -r "s/.*:(.*)/\1/g")
|
8
|
-
fi
|
9
|
-
if [[ -z "$KAFKA_BROKER_ID" ]]; then
|
10
|
-
# By default auto allocate broker ID
|
11
|
-
export KAFKA_BROKER_ID=-1
|
12
|
-
fi
|
13
|
-
if [[ -z "$KAFKA_LOG_DIRS" ]]; then
|
14
|
-
export KAFKA_LOG_DIRS="/kafka/kafka-logs-$HOSTNAME"
|
15
|
-
fi
|
16
|
-
if [[ -z "$KAFKA_ZOOKEEPER_CONNECT" ]]; then
|
17
|
-
export KAFKA_ZOOKEEPER_CONNECT=$(env | grep ZK.*PORT_2181_TCP= | sed -e 's|.*tcp://||' | paste -sd ,)
|
18
|
-
fi
|
19
|
-
|
20
|
-
if [[ -n "$KAFKA_HEAP_OPTS" ]]; then
|
21
|
-
sed -r -i "s/(export KAFKA_HEAP_OPTS)=\"(.*)\"/\1=\"$KAFKA_HEAP_OPTS\"/g" $KAFKA_HOME/bin/kafka-server-start.sh
|
22
|
-
unset KAFKA_HEAP_OPTS
|
23
|
-
fi
|
24
|
-
|
25
|
-
if [[ -z "$KAFKA_ADVERTISED_HOST_NAME" && -n "$HOSTNAME_COMMAND" ]]; then
|
26
|
-
export KAFKA_ADVERTISED_HOST_NAME=$(eval $HOSTNAME_COMMAND)
|
27
|
-
fi
|
28
|
-
|
29
|
-
for VAR in `env`
|
30
|
-
do
|
31
|
-
if [[ $VAR =~ ^KAFKA_ && ! $VAR =~ ^KAFKA_HOME ]]; then
|
32
|
-
kafka_name=`echo "$VAR" | sed -r "s/KAFKA_(.*)=.*/\1/g" | tr '[:upper:]' '[:lower:]' | tr _ .`
|
33
|
-
env_var=`echo "$VAR" | sed -r "s/(.*)=.*/\1/g"`
|
34
|
-
if egrep -q "(^|^#)$kafka_name=" $KAFKA_HOME/config/server.properties; then
|
35
|
-
sed -r -i "s@(^|^#)($kafka_name)=(.*)@\2=${!env_var}@g" $KAFKA_HOME/config/server.properties #note that no config values may contain an '@' char
|
36
|
-
else
|
37
|
-
echo "$kafka_name=${!env_var}" >> $KAFKA_HOME/config/server.properties
|
38
|
-
fi
|
39
|
-
fi
|
40
|
-
done
|
41
|
-
|
42
|
-
if [[ -n "$CUSTOM_INIT_SCRIPT" ]] ; then
|
43
|
-
eval $CUSTOM_INIT_SCRIPT
|
44
|
-
fi
|
45
|
-
|
46
|
-
|
47
|
-
KAFKA_PID=0
|
48
|
-
|
49
|
-
# see https://medium.com/@gchudnov/trapping-signals-in-docker-containers-7a57fdda7d86#.bh35ir4u5
|
50
|
-
term_handler() {
|
51
|
-
echo 'Stopping Kafka....'
|
52
|
-
if [ $KAFKA_PID -ne 0 ]; then
|
53
|
-
kill -s TERM "$KAFKA_PID"
|
54
|
-
wait "$KAFKA_PID"
|
55
|
-
fi
|
56
|
-
echo 'Kafka stopped.'
|
57
|
-
exit
|
58
|
-
}
|
59
|
-
|
60
|
-
|
61
|
-
# Capture kill requests to stop properly
|
62
|
-
trap "term_handler" SIGHUP SIGINT SIGTERM
|
63
|
-
create-topics.sh &
|
64
|
-
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties &
|
65
|
-
KAFKA_PID=$!
|
66
|
-
|
67
|
-
wait
|
@@ -1,55 +0,0 @@
|
|
1
|
-
|
2
|
-
add 'build', {
|
3
|
-
"image_name" => "nginx",
|
4
|
-
'build_type' => 'chef',
|
5
|
-
|
6
|
-
"base_image" => {
|
7
|
-
"name" => "nginx",
|
8
|
-
"repository" => "nginx",
|
9
|
-
"tag" => "1.10"
|
10
|
-
|
11
|
-
},
|
12
|
-
|
13
|
-
}
|
14
|
-
|
15
|
-
add 'install', {
|
16
|
-
"host" => {
|
17
|
-
'script_type' => 'chef_recipe',
|
18
|
-
'script' => 'install_host',
|
19
|
-
},
|
20
|
-
"node" => {
|
21
|
-
#'script_type' => 'chef_recipe',
|
22
|
-
'script_type' => 'shell',
|
23
|
-
#'script' => 'install',
|
24
|
-
}
|
25
|
-
|
26
|
-
|
27
|
-
}
|
28
|
-
|
29
|
-
|
30
|
-
add 'docker', {
|
31
|
-
#'command' => "/sbin/my_init",
|
32
|
-
"command"=> "nginx -g 'daemon off;'",
|
33
|
-
#"command"=> "",
|
34
|
-
'ports' => [
|
35
|
-
[8080,80],
|
36
|
-
],
|
37
|
-
'volumes' => [
|
38
|
-
['html', '/usr/share/nginx/html'],
|
39
|
-
['log/nginx', '/var/log/nginx/'],
|
40
|
-
],
|
41
|
-
'links' => [
|
42
|
-
]
|
43
|
-
}
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
add 'attributes', {
|
48
|
-
'nginx' =>{
|
49
|
-
"sitename" =>"mysite.local"
|
50
|
-
},
|
51
|
-
|
52
|
-
|
53
|
-
}
|
54
|
-
|
55
|
-
|
@@ -1 +0,0 @@
|
|
1
|
-
# nginx
|
@@ -1,28 +0,0 @@
|
|
1
|
-
|
2
|
-
## nginx default server
|
3
|
-
template "/etc/nginx/conf.d/default.conf" do
|
4
|
-
source "nginx-sites/default.conf.erb"
|
5
|
-
|
6
|
-
#owner 'root'
|
7
|
-
#group 'root'
|
8
|
-
|
9
|
-
mode '0775'
|
10
|
-
end
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
#
|
18
|
-
bash 'reload nginx' do
|
19
|
-
code <<-EOH
|
20
|
-
service nginx reload
|
21
|
-
EOH
|
22
|
-
|
23
|
-
ignore_failure true
|
24
|
-
end
|
25
|
-
|
26
|
-
|
27
|
-
#command '/etc/init.d/nginx reload'
|
28
|
-
|
data/examples/example-nginx/servers/nginx/cookbooks/nginx/templates/nginx-sites/default.conf.erb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
server {
|
2
|
-
listen 80;
|
3
|
-
server_name localhost <%=node['nginx']['sitename']%> ;
|
4
|
-
|
5
|
-
#charset koi8-r;
|
6
|
-
#access_log /var/log/nginx/log/access.log main;
|
7
|
-
|
8
|
-
location / {
|
9
|
-
root /usr/share/nginx/html;
|
10
|
-
index index.html index.htm;
|
11
|
-
}
|
12
|
-
|
13
|
-
#error_page 404 /404.html;
|
14
|
-
|
15
|
-
# redirect server error pages to the static page /50x.html
|
16
|
-
#
|
17
|
-
error_page 500 502 503 504 /50x.html;
|
18
|
-
location = /50x.html {
|
19
|
-
root /usr/share/nginx/html;
|
20
|
-
}
|
21
|
-
|
22
|
-
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
|
23
|
-
#
|
24
|
-
#location ~ \.php$ {
|
25
|
-
# proxy_pass http://127.0.0.1;
|
26
|
-
#}
|
27
|
-
|
28
|
-
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
|
29
|
-
#
|
30
|
-
#location ~ \.php$ {
|
31
|
-
# root html;
|
32
|
-
# fastcgi_pass 127.0.0.1:9000;
|
33
|
-
# fastcgi_index index.php;
|
34
|
-
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
|
35
|
-
# include fastcgi_params;
|
36
|
-
#}
|
37
|
-
|
38
|
-
# deny access to .htaccess files, if Apache's document root
|
39
|
-
# concurs with nginx's one
|
40
|
-
#
|
41
|
-
#location ~ /\.ht {
|
42
|
-
# deny all;
|
43
|
-
#}
|
44
|
-
}
|
45
|
-
|
File without changes
|
@@ -1,20 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"build":{
|
3
|
-
"image_name":"nginx","build_type":"chef", "base_image":{"name":"nginx","repository":"nginx","tag":"1.10"}
|
4
|
-
},
|
5
|
-
|
6
|
-
"install":{
|
7
|
-
"host":{"script_type":"chef_recipe","script":"install_host"},
|
8
|
-
"node":{"script_type":"chef_recipe","script":"install"}
|
9
|
-
},
|
10
|
-
"docker": {
|
11
|
-
"command":"nginx -g 'daemon off;'","ports":[[8080,80]],
|
12
|
-
"volumes":[["html","/usr/share/nginx/html"],["log/nginx","/var/log/nginx/"]],"links":[]
|
13
|
-
},
|
14
|
-
|
15
|
-
"attributes":{
|
16
|
-
"nginx":{"sitename":"mysite.local"}},"name":"nginx","common":{"prefix":"example-","image_prefix":"example-","dir_data":"/disk3/data/my-examples/"
|
17
|
-
},
|
18
|
-
|
19
|
-
"base":{"image_name":"example-nginx"}
|
20
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"build":{"image_name":"nginx","build_type":"chef","base_image":{"name":"nginx","repository":"nginx","tag":"1.10"}},"install":{"host":{"script_type":"chef_recipe","script":"install_host"},"node":{"script_type":"chef_recipe","script":"install"}},"docker":{"command":"nginx -g 'daemon off;'","ports":[[8080,80]],"volumes":[["/disk3/data/my-examples/nginx/html","/usr/share/nginx/html"],["/disk3/data/my-examples/nginx/log/nginx","/var/log/nginx/"]],"links":[]},"attributes":{"nginx":{"sitename":"mysite.local"}},"name":"nginx","common":{"prefix":"example-","image_prefix":"example-","dir_data":"/disk3/data/my-examples/"},"base":{"image_name":"example-nginx","container_name":"example-nginx"}}
|
@@ -1,61 +0,0 @@
|
|
1
|
-
common({
|
2
|
-
'prefix' => "example-",
|
3
|
-
'image_prefix' => 'example-',
|
4
|
-
'dir_data' => '/disk3/data/my-examples/',
|
5
|
-
|
6
|
-
})
|
7
|
-
|
8
|
-
servers({
|
9
|
-
'redis'=>{
|
10
|
-
|
11
|
-
'build' => {
|
12
|
-
"image_name" => "redis",
|
13
|
-
'build_type' => 'none',
|
14
|
-
|
15
|
-
"base_image" => {
|
16
|
-
"name" => "redis",
|
17
|
-
"repository" => "redis",
|
18
|
-
"tag" => "3.2.4"
|
19
|
-
|
20
|
-
},
|
21
|
-
|
22
|
-
},
|
23
|
-
|
24
|
-
'install'=> {
|
25
|
-
},
|
26
|
-
|
27
|
-
'docker'=> {
|
28
|
-
#"command"=> "",
|
29
|
-
'ports' => [
|
30
|
-
[6379,80],
|
31
|
-
],
|
32
|
-
'volumes' => [
|
33
|
-
],
|
34
|
-
'links' => [
|
35
|
-
],
|
36
|
-
|
37
|
-
# network
|
38
|
-
#"ip"=>"10.1.0.144",
|
39
|
-
#"net"=> "pub_net",
|
40
|
-
|
41
|
-
# for swarm
|
42
|
-
"swarm_network"=> "pub_net",
|
43
|
-
#"swarm_options" => ""
|
44
|
-
"swarm_options" => "--replicas=1 --restart-max-attempts=1"
|
45
|
-
#"swarm_options" => "-e constraint:node==mmxpc "
|
46
|
-
# --net=pub_net --ip=10.1.0.131
|
47
|
-
|
48
|
-
},
|
49
|
-
|
50
|
-
'attributes'=> {
|
51
|
-
}
|
52
|
-
|
53
|
-
}, # / redis
|
54
|
-
|
55
|
-
|
56
|
-
})
|
57
|
-
|
58
|
-
|
59
|
-
base({
|
60
|
-
|
61
|
-
})
|
data/lib/docker_builder/temp.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
|