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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95d9b00c1d871e17191fb41936995ce7df89781cdc63d8cd14c35892ea4c059d
4
- data.tar.gz: 9ca1f02859df043e7e26849d8d0426ab12f299e6181eb3ec4b879ab640349838
3
+ metadata.gz: 3d5ca6b762462dfb595bc2e9c0e206ece3d762463c1baefff37f5a4d2fb9fa4b
4
+ data.tar.gz: 6d70f4a16968838cdbdd33c1d7eb0c9f08c4d9bbc7c533e24fd609989720444e
5
5
  SHA512:
6
- metadata.gz: 57b83d2f9146102d678c2af004024515b3e832e7fb08a76b23a0ca8d5aa35716877aba113a435a9c705ecb16f9124b6e8ba9574e53394ba6a92e20c8fde3d2df
7
- data.tar.gz: b4aedd652b08b74991e2acd5b8b51746d963674258ee6289ac0d720b557c1fb2131dff3ca754ac3b4abf57dd66c0b427325640d095ec36df58ad59519bc1a265
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
- remote_dump_file = "#{config.env_remote_directory}/dump.sql.gz"
6
- local_dump_file = "#{config.project_root_path}/tmp/#{File.basename(remote_dump_file)}"
7
- remote_postgres_db_container = config.env_remote_postgres_db_container
8
- local_postgres_db_container = config.env_local_postgres_db_container
9
- project_root_path = config.project_root_path
10
- on config.env_host do
11
- execute("docker exec -t #{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}")
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 #{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()\"'")
19
- execute("docker exec -i #{local_postgres_db_container} bash -c 'dropdb -U $POSTGRES_USER $POSTGRES_DB'")
20
- execute("docker exec -i #{local_postgres_db_container} bash -c 'createdb -U $POSTGRES_USER $POSTGRES_DB'")
21
- execute("docker exec -i #{local_postgres_db_container} bash -c 'psql -U $POSTGRES_USER -d $POSTGRES_DB' < #{project_root_path}/tmp/dump.sql")
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
- git_repository = config.git_repository
7
- env = config.env
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("cp #{local_deploy_path}/#{env}/.env #{local_git_tmp_path}/.env")
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
- execute("cd #{local_git_tmp_path} && TAG=#{env_git_branch} docker-compose -f docker-compose.server.yml build")
25
- execute("cd #{local_git_tmp_path} && docker login -u #{registry_login} -p '#{registry_password}' #{registry_server}")
26
- execute("cd #{local_git_tmp_path} && TAG=#{env_git_branch} docker-compose -f docker-compose.server.yml push")
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
- on config.env_host do
29
- execute(:mkdir, "-p", "#{env_remote_directory}/data")
30
- upload!("#{local_deploy_path}/#{env}/.env", "#{env_remote_directory}/.env")
31
- upload!("#{local_docker_path}/docker-compose.server.yml", "#{env_remote_directory}/docker-compose.yml")
32
- local_ssl_path = "#{local_deploy_path}/#{env}/ssl"
33
- if File.readable?(local_ssl_path)
34
- execute(:rm, "-fr", "#{env_remote_directory}/ssl")
35
- upload!("#{local_deploy_path}/#{env}/ssl", "#{env_remote_directory}/ssl", recursive: true)
36
- else
37
- local_renew_cert_script = "docker/deploy/#{env}/renew_cert.sh"
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
@@ -1,3 +1,3 @@
1
1
  module DockerManager
2
- VERSION = '0.0.12'
2
+ VERSION = '0.0.14'
3
3
  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.12
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 00:00:00.000000000 Z
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: ''