capistrano-deploy_into_docker 0.2.0 → 0.2.1

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
  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.