docker-manager 0.0.12 → 0.0.14
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/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: ''
|