docker-manager 0.0.12 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dockermanager/commands/db_pull.rb +14 -13
- data/lib/dockermanager/commands/deploy.rb +21 -34
- data/lib/dockermanager/commands/upload_config.rb +26 -0
- data/lib/dockermanager/version.rb +1 -1
- data/lib/dockermanager.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d5ca6b762462dfb595bc2e9c0e206ece3d762463c1baefff37f5a4d2fb9fa4b
|
4
|
+
data.tar.gz: 6d70f4a16968838cdbdd33c1d7eb0c9f08c4d9bbc7c533e24fd609989720444e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 410f230d9d9b194ee76af3f20650070b1da8f50643a13fcc992012cc87555efe33403c49d281f088cd76e84dfc669d29384ab93727d052f11299da87f61551d1
|
7
|
+
data.tar.gz: 176998aecd23894315fb4079f3d752a33f99596414bbf8250cafbb8b1795447712222c05c86b2e89fb48b5a6b816caae7a1f1e5909124b8aecab5a05b26d20ff
|
@@ -2,24 +2,25 @@ module DockerManager
|
|
2
2
|
module Commands
|
3
3
|
class DbPull < Base
|
4
4
|
def run
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
on
|
11
|
-
execute("docker exec -t #{
|
5
|
+
# to avoid scope issue
|
6
|
+
conf = config
|
7
|
+
remote_dump_file = "#{conf.env_remote_directory}/dump.sql.gz"
|
8
|
+
local_dump_file = "#{conf.project_root_path}/tmp/#{File.basename(remote_dump_file)}"
|
9
|
+
|
10
|
+
on conf.env_host do
|
11
|
+
execute("docker exec -t #{conf.env_remote_postgres_db_container} bash -c 'PGPASSWORD=$POSTGRES_PASSWORD pg_dump -h $POSTGRES_HOST -U $POSTGRES_USER $POSTGRES_DB --no-acl --no-owner' | gzip - -c --stdout > #{remote_dump_file}")
|
12
12
|
download!(remote_dump_file, local_dump_file)
|
13
13
|
end
|
14
|
+
|
14
15
|
run_locally do
|
15
|
-
execute(:rm, "-f", "#{project_root_path}/tmp/dump.sql")
|
16
|
+
execute(:rm, "-f", "#{conf.project_root_path}/tmp/dump.sql")
|
16
17
|
execute("gunzip #{local_dump_file}")
|
17
18
|
# condition pg_stat_activity.datname = \'#{local_database}\' removed
|
18
|
-
execute("docker exec -i #{
|
19
|
-
execute("docker exec -i #{
|
20
|
-
execute("docker exec -i #{
|
21
|
-
execute("docker exec -i #{
|
22
|
-
execute(:rm, "#{project_root_path}/tmp/dump.sql")
|
19
|
+
execute("docker exec -i #{conf.env_local_postgres_db_container} bash -c 'psql -U $POSTGRES_USER -d $POSTGRES_DB -c \"SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid()\"'")
|
20
|
+
execute("docker exec -i #{conf.env_local_postgres_db_container} bash -c 'dropdb -U $POSTGRES_USER $POSTGRES_DB'")
|
21
|
+
execute("docker exec -i #{conf.env_local_postgres_db_container} bash -c 'createdb -U $POSTGRES_USER $POSTGRES_DB'")
|
22
|
+
execute("docker exec -i #{conf.env_local_postgres_db_container} bash -c 'psql -U $POSTGRES_USER -d $POSTGRES_DB' < #{conf.project_root_path}/tmp/dump.sql")
|
23
|
+
execute(:rm, "#{conf.project_root_path}/tmp/dump.sql")
|
23
24
|
end
|
24
25
|
end
|
25
26
|
end
|
@@ -3,43 +3,30 @@ module DockerManager
|
|
3
3
|
class Deploy < Base
|
4
4
|
def run
|
5
5
|
# to avoid scope issue
|
6
|
-
|
7
|
-
|
8
|
-
local_git_tmp_path = config.local_git_tmp_path
|
9
|
-
project_root_path = config.project_root_path
|
10
|
-
local_docker_path = config.local_docker_path
|
11
|
-
local_deploy_path = config.local_deploy_path
|
12
|
-
registry_login = config.registry_login
|
13
|
-
registry_password = config.registry_password
|
14
|
-
registry_server = config.registry_server
|
15
|
-
env_git_branch = config.env_git_branch
|
16
|
-
env_remote_directory = config.env_remote_directory
|
17
|
-
containers_to_restart = (config.containers_to_restart || []).join(' ')
|
6
|
+
conf = config
|
7
|
+
|
18
8
|
run_locally do
|
19
|
-
execute("rm -fr #{local_git_tmp_path}")
|
20
|
-
execute("git clone -b #{env_git_branch} #{git_repository} #{local_git_tmp_path}")
|
21
|
-
execute("
|
22
|
-
execute("cp #{local_docker_path}/docker-compose.server.yml #{local_git_tmp_path}")
|
9
|
+
execute("rm -fr #{conf.local_git_tmp_path}")
|
10
|
+
execute("git clone -b #{conf.env_git_branch} #{conf.git_repository} #{conf.local_git_tmp_path}")
|
11
|
+
execute("touch #{conf.local_git_tmp_path}/.env")
|
12
|
+
execute("cp #{conf.local_docker_path}/docker-compose.server.yml #{conf.local_git_tmp_path}")
|
23
13
|
# within doesn't work
|
24
|
-
|
25
|
-
|
26
|
-
execute("
|
14
|
+
change_dir = "cd #{conf.local_git_tmp_path}"
|
15
|
+
compose_cmd = "#{change_dir} && TAG=#{conf.env_git_branch} docker-compose -f docker-compose.server.yml"
|
16
|
+
execute("#{compose_cmd} build")
|
17
|
+
execute("#{change_dir} && docker login -u #{conf.registry_login} -p '#{conf.registry_password}' #{conf.registry_server}")
|
18
|
+
execute("#{compose_cmd} push")
|
27
19
|
end
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
upload!("#{local_docker_path}/docker-compose.server.yml", "#{env_remote_directory}/docker-compose.yml")
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
upload!(local_renew_cert_script, "#{env_remote_directory}/renew_cert.sh") if File.readable?(local_renew_cert_script)
|
39
|
-
end
|
40
|
-
execute("docker login -u #{registry_login} -p '#{registry_password}' #{registry_server}")
|
41
|
-
execute("cd #{env_remote_directory} && TAG=#{env_git_branch} docker-compose pull -q")
|
42
|
-
execute("cd #{env_remote_directory} && TAG=#{env_git_branch} docker-compose up -d #{containers_to_restart}")
|
20
|
+
|
21
|
+
on conf.env_host do
|
22
|
+
execute(:mkdir, "-p", "#{conf.env_remote_directory}/data")
|
23
|
+
upload!("#{conf.local_docker_path}/docker-compose.server.yml", "#{conf.env_remote_directory}/docker-compose.yml")
|
24
|
+
execute("docker login -u #{conf.registry_login} -p '#{conf.registry_password}' #{conf.registry_server}")
|
25
|
+
change_dir = "cd #{conf.env_remote_directory}"
|
26
|
+
compose_cmd = "#{change_dir} && TAG=#{conf.env_git_branch} docker-compose"
|
27
|
+
containers_to_restart = (conf.containers_to_restart || []).join(' ')
|
28
|
+
execute("#{compose_cmd} pull -q")
|
29
|
+
execute("#{compose_cmd} up -d #{containers_to_restart}")
|
43
30
|
execute("docker system prune -f")
|
44
31
|
end
|
45
32
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module DockerManager
|
2
|
+
module Commands
|
3
|
+
class UploadConfig < Base
|
4
|
+
def run
|
5
|
+
# to avoid scope issue
|
6
|
+
conf = config
|
7
|
+
|
8
|
+
on conf.env_host do
|
9
|
+
execute(:mkdir, "-p", conf.env_remote_directory)
|
10
|
+
env_file = "#{conf.local_deploy_path}/#{conf.env}/.env"
|
11
|
+
upload!(env_file, "#{conf.env_remote_directory}/.env") if File.readable?(env_file)
|
12
|
+
compose_file = "#{conf.local_docker_path}/docker-compose.server.yml"
|
13
|
+
upload!(compose_file, "#{conf.env_remote_directory}/docker-compose.yml") if File.readable?(compose_file)
|
14
|
+
local_ssl_path = "#{conf.local_deploy_path}/#{conf.env}/ssl"
|
15
|
+
if File.readable?(local_ssl_path)
|
16
|
+
execute(:rm, "-fr", "#{conf.env_remote_directory}/ssl")
|
17
|
+
upload!("#{conf.local_deploy_path}/#{conf.env}/ssl", "#{conf.env_remote_directory}/ssl", recursive: true)
|
18
|
+
else
|
19
|
+
local_renew_cert_script = "docker/deploy/#{conf.env}/renew_cert.sh"
|
20
|
+
upload!(local_renew_cert_script, "#{conf.env_remote_directory}/renew_cert.sh") if File.readable?(local_renew_cert_script)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/dockermanager.rb
CHANGED
@@ -3,6 +3,7 @@ require File.dirname(__FILE__) + '/dockermanager/config'
|
|
3
3
|
require File.dirname(__FILE__) + '/dockermanager/commands/base'
|
4
4
|
require File.dirname(__FILE__) + '/dockermanager/commands/deploy'
|
5
5
|
require File.dirname(__FILE__) + '/dockermanager/commands/db_pull'
|
6
|
+
require File.dirname(__FILE__) + '/dockermanager/commands/upload_config'
|
6
7
|
|
7
8
|
module DockerManager
|
8
9
|
extend self
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Biard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sshkit
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- lib/dockermanager/commands/base.rb
|
43
43
|
- lib/dockermanager/commands/db_pull.rb
|
44
44
|
- lib/dockermanager/commands/deploy.rb
|
45
|
+
- lib/dockermanager/commands/upload_config.rb
|
45
46
|
- lib/dockermanager/config.rb
|
46
47
|
- lib/dockermanager/version.rb
|
47
48
|
homepage: ''
|