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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 15acb093e247a9609e43b658375127b4c600bfbf
4
- data.tar.gz: 815ac56c0c394a2911038a5383171ef1ec3f03dd
3
+ metadata.gz: 10143d84364a3dde17610b679f7bbbd0b06fed13
4
+ data.tar.gz: a14e6a790dd4913654db9004cb83253aafd0d956
5
5
  SHA512:
6
- metadata.gz: 217adba3c3694b97c3a64607ba021b4f2ffdce1d593822f1baa01ff7117b7cf298fda6bfd42bf46bba75d46ec440e0fea23def2dce64434d636cd02124177e72
7
- data.tar.gz: 4e2a38bb3ea7cfb0712c01590afc555ef9931d630e5081964ad45c0071fa3a5338836928fabb5aaa44cf7ad4e42d3652c3b05570624baa6a822bcdc6f94a2b6d
6
+ metadata.gz: cad30fe6bf1688ec2fb04cb4a9bc70356940cf584517d7539540d0ec66f9b5dc5423336adbe8ce01b16060d921f2e6918a81babee5583ef84189019ef05897bb
7
+ data.tar.gz: f50de1da53291360e636e696876fa4006704cf5867fdacbec7858622f851e6edfafc8c73e8f41d71dd2596862dc9e932b62609a641ff91c62efc35443f94af5d
data/README.md CHANGED
@@ -2,19 +2,19 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/capistrano-deploy_into_docker.svg)](https://badge.fury.io/rb/capistrano-deploy_into_docker)
4
4
 
5
- Mini support task file to deploy app into docker.
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.0', group: :development
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
- ### Deploy setting
27
+ ### 2) Create new deploy setting for docker
28
28
 
29
- You need to set `::sshkit_backend` to `SSHKit::Backend::Docker`.
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, '/var/local/app'
38
- set :git_shallow_clone, 1
39
- fetch(:default_env).merge!(rails_env: :production, SECRET_KEY_BASE: 'dummy', DEVISE_SECRET_KEY: 'dummy')
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
- fetch(:linked_dirs, []).clear
42
- fetch(:linked_files, []).clear
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: 'nobody:nogroup', roles: %w{web app}
66
+ }, user: 'rails:rails', roles: %w{web app}
66
67
  ```
67
68
 
68
- In addtion, you can add any options for "docker run". for example;
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
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module DeployIntoDocker
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
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.0
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: 2016-09-04 00:00:00.000000000 Z
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: '0'
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: '0'
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.1
91
+ rubygems_version: 2.5.2
92
92
  signing_key:
93
93
  specification_version: 4
94
94
  summary: Capistrano tasks to deploy into docker.