capistrano-deploy_into_docker 0.2.0 → 0.2.1
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/README.md +76 -12
- data/lib/capistrano/deploy_into_docker/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10143d84364a3dde17610b679f7bbbd0b06fed13
|
4
|
+
data.tar.gz: a14e6a790dd4913654db9004cb83253aafd0d956
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cad30fe6bf1688ec2fb04cb4a9bc70356940cf584517d7539540d0ec66f9b5dc5423336adbe8ce01b16060d921f2e6918a81babee5583ef84189019ef05897bb
|
7
|
+
data.tar.gz: f50de1da53291360e636e696876fa4006704cf5867fdacbec7858622f851e6edfafc8c73e8f41d71dd2596862dc9e932b62609a641ff91c62efc35443f94af5d
|
data/README.md
CHANGED
@@ -2,19 +2,19 @@
|
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/capistrano-deploy_into_docker)
|
4
4
|
|
5
|
-
Mini support task
|
5
|
+
Mini support task to deploy app into docker.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
9
9
|
Add in your Gemfile;
|
10
10
|
|
11
11
|
```ruby
|
12
|
-
gem 'capistrano-deploy_into_docker', '>= 0.2.
|
12
|
+
gem 'capistrano-deploy_into_docker', '>= 0.2.1', group: :development
|
13
13
|
```
|
14
14
|
|
15
15
|
## HowTo: deploy your rails application into docker
|
16
16
|
|
17
|
-
### Require task on Capfile
|
17
|
+
### 1) Require task on Capfile
|
18
18
|
|
19
19
|
Add following like to your Capfile;
|
20
20
|
|
@@ -24,9 +24,9 @@ require 'capistrano/deploy_into_docker'
|
|
24
24
|
|
25
25
|
This just add `deploy_into_docker:commit` task.
|
26
26
|
|
27
|
-
###
|
27
|
+
### 2) Create new deploy setting for docker
|
28
28
|
|
29
|
-
You need to set
|
29
|
+
You need to set `:sshkit_backend` to `SSHKit::Backend::Docker`.
|
30
30
|
|
31
31
|
Here is an example for config/deploy/docker.rb;
|
32
32
|
|
@@ -34,12 +34,13 @@ Here is an example for config/deploy/docker.rb;
|
|
34
34
|
set :sshkit_backend, SSHKit::Backend::Docker
|
35
35
|
set :stage, :production
|
36
36
|
set :branch, 'production'
|
37
|
-
set :deploy_to, '/
|
38
|
-
|
39
|
-
|
37
|
+
set :deploy_to, '/app'
|
38
|
+
fetch(:default_env).merge!(rails_env: :production, RAILS_SERVE_STATIC_FILES: 1,
|
39
|
+
SECRET_KEY_BASE: 'dummy', DEVISE_SECRET_KEY: 'dummy',
|
40
|
+
DATABASE_URL: 'mysql2://0/must-be-overrided')
|
40
41
|
|
41
|
-
|
42
|
-
|
42
|
+
set :linked_dirs, %w{log tmp/sockets public/system}
|
43
|
+
Rake::Task["deploy:set_linked_dirs"].clear # Save assets on each releases dir (not under shared)
|
43
44
|
|
44
45
|
server docker: {
|
45
46
|
image: 'sugi/rails-base',
|
@@ -62,10 +63,10 @@ If you set `:commit` key, run "docker commit" after deploy automatically.
|
|
62
63
|
server docker: {
|
63
64
|
image: 'sugi/rails-base:latest',
|
64
65
|
commit: 'new-image-name:tag',
|
65
|
-
}, user: '
|
66
|
+
}, user: 'rails:rails', roles: %w{web app}
|
66
67
|
```
|
67
68
|
|
68
|
-
In addtion, you can add any options for "docker run".
|
69
|
+
In addtion, you can add any options for "docker run". For example;
|
69
70
|
|
70
71
|
```ruby
|
71
72
|
server docker: {
|
@@ -79,6 +80,69 @@ server docker: {
|
|
79
80
|
}, user: 'nobody:nogroup', roles: %w{web app}
|
80
81
|
```
|
81
82
|
|
83
|
+
If you want to build multiple images, define servers for each role. For example;
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
server docker: {
|
87
|
+
image: 'sugi/rails-base:2.3',
|
88
|
+
commit: 'myapp-web',
|
89
|
+
env: {
|
90
|
+
APP_SERVER_CMD: "exec bin/rails server puma"
|
91
|
+
}
|
92
|
+
}, user: 'rails:rails', roles: :web
|
93
|
+
|
94
|
+
server docker: {
|
95
|
+
image: 'sugi/rails-base:2.3',
|
96
|
+
commit: 'myapp-job',
|
97
|
+
env: {
|
98
|
+
APP_SERVER_CMD: "exec bin/delayed_job run"
|
99
|
+
}
|
100
|
+
}, user: 'rails:rails', roles: :app
|
101
|
+
```
|
102
|
+
|
103
|
+
|
104
|
+
## Tips
|
105
|
+
|
106
|
+
### Stop to run some tasks only in docker deploy stage
|
107
|
+
|
108
|
+
Use `Rake::Task["target:name"].clear`, for example;
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
Rake::Task["passenger:restart"].clear
|
112
|
+
```
|
113
|
+
|
114
|
+
You can stop to run any target by calling clear method in deploy/_stage-name_.rb.
|
115
|
+
|
116
|
+
### Deploy as handy development test
|
117
|
+
|
118
|
+
If you run docker on localhost, mount current source dir as docker volume to test purpose
|
119
|
+
(Note: I do NOT suggest this tric to build production environment).
|
120
|
+
|
121
|
+
For example;
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
set :sshkit_backend, SSHKit::Backend::Docker
|
125
|
+
set :stage, :development
|
126
|
+
set :branch, 'master'
|
127
|
+
set :deploy_to, '/app'
|
128
|
+
fetch(:default_env).merge!(rails_env: :development,
|
129
|
+
SECRET_KEY_BASE: 'dummy', DEVISE_SECRET_KEY: 'dummy',
|
130
|
+
DATABASE_URL: 'mysql2://0/must-be-overrided'
|
131
|
+
)
|
132
|
+
set :bundle_without, 'test'
|
133
|
+
set :repo_url, '/src' # <--------- Use source from mounted volume.
|
134
|
+
|
135
|
+
fetch(:linked_dirs, []).clear
|
136
|
+
fetch(:linked_files, []).clear
|
137
|
+
Rake::Task["deploy:set_linked_dirs"].clear
|
138
|
+
|
139
|
+
server docker: {
|
140
|
+
image: 'nvc-base',
|
141
|
+
commit: 'nvc-test',
|
142
|
+
volume: "#{Dir.pwd}:/src", # <---------- Mount current source as docker volume.
|
143
|
+
}, user: 'rails:rails', roles: %w{web app}
|
144
|
+
```
|
145
|
+
|
82
146
|
## Copyright
|
83
147
|
|
84
148
|
Author: Tatsuki Sugiura
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-deploy_into_docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tatsuki Sugiura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sshkit-backend-docker
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.1.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.1.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
version: '0'
|
89
89
|
requirements: []
|
90
90
|
rubyforge_project:
|
91
|
-
rubygems_version: 2.5.
|
91
|
+
rubygems_version: 2.5.2
|
92
92
|
signing_key:
|
93
93
|
specification_version: 4
|
94
94
|
summary: Capistrano tasks to deploy into docker.
|