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 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: ''