capistrano-docker_cluster 1.0.5 → 1.0.6
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec723926c7aa3eff8fd1881623c844c3dc9227861233a0d06165aa6e67027e00
|
4
|
+
data.tar.gz: 071c150e5e27d974f8382d37468dad6ef13161ee23bb848512ca3d582213776d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 186ffdb3cd72c0f0710fb99b329bf6cf003df5e75c25d2f1c9a97f062df10c9cbe5c937b499a934c18b65200b96d58d000a84d676f72886e6312061c78388c75
|
7
|
+
data.tar.gz: e9b5246df144de6550eab34bc11df997cda612af7e375b7fa7808b14a2378da160885f7dfb2b9ddb908658b679a6d3660225e10ccb6ba3d75f32b486527ff747
|
data/CHANGE_LOG.md
CHANGED
@@ -15,7 +15,7 @@ module Capistrano
|
|
15
15
|
def start_script(host)
|
16
16
|
apps = Array(fetch_for_host(host, :docker_apps))
|
17
17
|
cmd = "exec bin/docker-cluster"
|
18
|
-
image_id = fetch(:
|
18
|
+
image_id = "#{fetch(:docker_repository)}:#{fetch(:docker_tag)}"
|
19
19
|
prefix = fetch(:docker_prefix)
|
20
20
|
|
21
21
|
cases = []
|
@@ -28,7 +28,7 @@ module Capistrano
|
|
28
28
|
#!/usr/bin/env bash
|
29
29
|
|
30
30
|
# Generated: #{Time.now.utc.iso8601}
|
31
|
-
# Docker image tag: #{fetch(:docker_repository)}
|
31
|
+
# Docker image tag: #{fetch(:docker_repository)}:#{fetch(:docker_tag)}
|
32
32
|
|
33
33
|
set -o errexit
|
34
34
|
|
@@ -59,7 +59,7 @@ module Capistrano
|
|
59
59
|
apps = apps.collect(&:to_s).uniq
|
60
60
|
|
61
61
|
cmd = "exec bin/docker-cluster"
|
62
|
-
image_id = fetch(:
|
62
|
+
image_id = "#{fetch(:docker_repository)}:#{fetch(:docker_tag)}"
|
63
63
|
|
64
64
|
cases = []
|
65
65
|
apps.each do |app|
|
@@ -71,7 +71,7 @@ module Capistrano
|
|
71
71
|
#!/usr/bin/env bash
|
72
72
|
|
73
73
|
# Generated: #{Time.now.utc.iso8601}
|
74
|
-
# Docker image tag: #{fetch(:docker_repository)}
|
74
|
+
# Docker image tag: #{fetch(:docker_repository)}:#{fetch(:docker_tag)}
|
75
75
|
|
76
76
|
set -o errexit
|
77
77
|
|
@@ -104,7 +104,7 @@ module Capistrano
|
|
104
104
|
#!/usr/bin/env bash
|
105
105
|
|
106
106
|
# Generated: #{Time.now.utc.iso8601}
|
107
|
-
# Docker image tag: #{fetch(:docker_repository)}
|
107
|
+
# Docker image tag: #{fetch(:docker_repository)}:#{fetch(:docker_tag)}
|
108
108
|
|
109
109
|
set -o errexit
|
110
110
|
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "shellwords"
|
4
|
+
|
3
5
|
set :docker_roles, [:docker]
|
4
6
|
|
5
7
|
def as_docker_user
|
@@ -17,9 +19,14 @@ end
|
|
17
19
|
|
18
20
|
namespace :deploy do
|
19
21
|
after :new_release_path, "docker:create_release"
|
22
|
+
|
20
23
|
after :updating, "docker:update"
|
24
|
+
|
21
25
|
after :published, "docker:restart"
|
22
26
|
|
27
|
+
after :reverted, "docker:revert_image"
|
28
|
+
|
29
|
+
# Required to be defined
|
23
30
|
task :upload do
|
24
31
|
end
|
25
32
|
end
|
@@ -32,17 +39,7 @@ namespace :docker do
|
|
32
39
|
end
|
33
40
|
|
34
41
|
if fetch(:docker_repository).include?("/")
|
35
|
-
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
task :set_image_id => :build do
|
40
|
-
on release_roles(fetch(:docker_roles)).first do
|
41
|
-
docker_tag_url = "#{fetch(:docker_repository)}:#{fetch(:docker_tag)}"
|
42
|
-
as_docker_user do
|
43
|
-
image_id = capture(:docker, "image", "ls", "--no-trunc", "--format", "'{{.ID}}'", docker_tag_url)
|
44
|
-
set :docker_image_id, image_id[7, 12]
|
45
|
-
end
|
42
|
+
invoke "docker:pull"
|
46
43
|
end
|
47
44
|
end
|
48
45
|
|
@@ -51,12 +48,13 @@ namespace :docker do
|
|
51
48
|
end
|
52
49
|
|
53
50
|
desc "Update the configuration and command line arguments for running a docker deployment."
|
54
|
-
task :update
|
51
|
+
task :update do
|
55
52
|
invoke("docker:copy_configs")
|
56
53
|
invoke("docker:upload_commands")
|
54
|
+
invoke("docker:remove_revision")
|
57
55
|
end
|
58
56
|
|
59
|
-
desc "Prune the docker engine of all dangling images, containers, and
|
57
|
+
desc "Prune the docker engine of all dangling images, containers, and networks."
|
60
58
|
task :prune do
|
61
59
|
on release_roles(fetch(:docker_roles)) do |host|
|
62
60
|
as_docker_user do
|
@@ -65,15 +63,51 @@ namespace :docker do
|
|
65
63
|
end
|
66
64
|
end
|
67
65
|
|
68
|
-
desc "Pull
|
69
|
-
task :pull do
|
70
|
-
|
71
|
-
|
72
|
-
|
66
|
+
desc "Pull the tagged docker image from a remote repository into the local docker engine."
|
67
|
+
task :pull => :authenticate do
|
68
|
+
docker_image_url = "#{fetch(:docker_repository)}:#{fetch(:docker_tag)}"
|
69
|
+
on release_roles(fetch(:docker_roles)) do |host|
|
70
|
+
within(release_path) do
|
71
|
+
as_docker_user do
|
72
|
+
docker_info = capture(:docker, "pull", docker_image_url)
|
73
|
+
digest = docker_info.match(/Digest: (sha256:[0-9a-f]+)/)
|
74
|
+
if digest
|
75
|
+
execute :echo, "'#{fetch(:docker_repository)}@#{digest[1]}' > DOCKER_IMAGE_URL"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
desc "Pull the pinned docker image from the current release and tag it."
|
83
|
+
task :revert_image => :authenticate do
|
84
|
+
on release_roles(fetch(:docker_roles)) do |host|
|
85
|
+
within "#{fetch(:deploy_to)}/current" do
|
86
|
+
as_docker_user do
|
87
|
+
docker_image_url = capture(:cat, "DOCKER_IMAGE_URL")
|
88
|
+
if docker_image_url.include?("/")
|
89
|
+
execute :docker, "pull", docker_image_url
|
90
|
+
end
|
91
|
+
execute :docker, "tag", docker_image_url, "#{fetch(:docker_repository)}:#{fetch(:docker_tag)}"
|
92
|
+
end
|
93
|
+
end
|
73
94
|
end
|
95
|
+
end
|
96
|
+
|
97
|
+
desc "You must implement the docker:authenticate task if your respository requires credentials."
|
98
|
+
task :authenticate do
|
99
|
+
end
|
100
|
+
|
101
|
+
desc "Remove the revision file if it contains placeholder text"
|
102
|
+
task :remove_revision do
|
74
103
|
on release_roles(fetch(:docker_roles)) do |host|
|
75
|
-
|
76
|
-
|
104
|
+
within(release_path) do
|
105
|
+
if test("[ -f #{Shellwords.escape(release_path)}/REVISION ]")
|
106
|
+
revision = capture(:cat, "REVISION")
|
107
|
+
if revision.include?(" ")
|
108
|
+
execute :rm, "REVISION"
|
109
|
+
end
|
110
|
+
end
|
77
111
|
end
|
78
112
|
end
|
79
113
|
end
|
@@ -130,13 +164,11 @@ namespace :docker do
|
|
130
164
|
desc "Copy configuration files used to start the docker containers."
|
131
165
|
task :copy_configs do
|
132
166
|
on release_roles(fetch(:docker_roles)) do |host|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
upload! local_path, "config/#{name}"
|
139
|
-
end
|
167
|
+
within fetch(:release_path) do
|
168
|
+
configs = Capistrano::DockerCluster::Scripts.new(self).docker_config_map(host)
|
169
|
+
execute(:mkdir, "-p", "config")
|
170
|
+
configs.each do |name, local_path|
|
171
|
+
upload! local_path, "config/#{name}"
|
140
172
|
end
|
141
173
|
end
|
142
174
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-docker_cluster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Durand
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|