roro 0.3.13 → 0.3.21

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.
Files changed (214) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +55 -11
  3. data/.gitignore +3 -2
  4. data/Guardfile +8 -10
  5. data/README.md +2 -1
  6. data/lib/roro.rb +3 -1
  7. data/lib/roro/cli.rb +16 -74
  8. data/lib/roro/cli/generate/exposed.rb +14 -0
  9. data/lib/roro/cli/generate/{generate_keys.rb → keys.rb} +24 -2
  10. data/lib/roro/cli/generate/obfuscated.rb +17 -0
  11. data/lib/roro/cli/generate/story.rb +18 -0
  12. data/lib/roro/cli/greenfield/rails.rb +14 -0
  13. data/lib/roro/cli/rollon.rb +126 -63
  14. data/lib/roro/cli/rollon/rails/base/base.rb +4 -0
  15. data/lib/roro/cli/{base → rollon/rails/base}/insert_gems.rb +2 -10
  16. data/lib/roro/cli/{base → rollon/rails/base}/insertions.rb +8 -0
  17. data/lib/roro/cli/rollon/rails/database.rb +26 -0
  18. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_mysql.rb +4 -4
  19. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_postgresql.rb +5 -6
  20. data/lib/roro/cli/rollon/ruby_gem.rb +1 -0
  21. data/lib/roro/cli/rollon/{stories/ruby_gem → ruby_gem}/with_ci_cd.rb +8 -8
  22. data/lib/roro/cli/rollon/stories.rb +2 -2
  23. data/lib/roro/configurator.rb +15 -0
  24. data/lib/roro/configurator/eligibility.rb +137 -0
  25. data/lib/roro/configurator/okonomi.rb +28 -0
  26. data/lib/roro/configurator/omakase.rb +170 -0
  27. data/lib/roro/crypto.rb +73 -0
  28. data/lib/roro/stories/greenfield.yml +1 -0
  29. data/lib/roro/stories/greenfield/rails.yml +9 -0
  30. data/lib/roro/stories/rollon.yml +42 -0
  31. data/lib/roro/stories/rollon/rails.yml +76 -0
  32. data/lib/roro/stories/rollon/rails/ci_cd.yml +1 -0
  33. data/lib/roro/stories/rollon/rails/ci_cd/circleci.yml +2 -0
  34. data/lib/roro/stories/rollon/rails/database.yml +9 -0
  35. data/lib/roro/stories/rollon/rails/database/mysql.yml +17 -0
  36. data/lib/roro/stories/rollon/rails/database/postgresql.yml +15 -0
  37. data/lib/roro/stories/rollon/rails/kubernetes.yml +1 -0
  38. data/lib/roro/stories/rollon/rails/kubernetes/postgresql.yml +10 -0
  39. data/lib/roro/stories/rollon/rails/kubernetes/postgresql/default.yml +1 -0
  40. data/lib/roro/stories/rollon/rails/kubernetes/postgresql/edge.yml +1 -0
  41. data/lib/roro/stories/rollon/ruby_gem.yml +5 -0
  42. data/lib/roro/templates/base/.circleci/_aliases.yml +8 -0
  43. data/lib/roro/templates/base/.circleci/_commands.yml +31 -0
  44. data/lib/roro/templates/base/.circleci/_defaults.yml +5 -0
  45. data/lib/roro/templates/base/.circleci/_executors.yml +11 -0
  46. data/lib/roro/templates/base/.circleci/_major_only.yml +4 -0
  47. data/lib/roro/templates/base/.circleci/_version.yml +1 -0
  48. data/lib/roro/templates/base/.circleci/_workflow.yml +2 -0
  49. data/lib/roro/templates/base/.circleci/config.job-example.yml +33 -0
  50. data/lib/roro/templates/base/.circleci/jobs/_build.yml +4 -0
  51. data/lib/roro/templates/base/.circleci/jobs/_release.yml +12 -0
  52. data/lib/roro/templates/base/.circleci/workflows/_build_release.yml +10 -0
  53. data/lib/roro/{cli/templates → templates}/base/.dockerignore +0 -0
  54. data/lib/roro/templates/base/dotenv +1 -0
  55. data/lib/roro/{cli/rollon/stories/rails → templates/base/jumpstart}/.keep +0 -0
  56. data/lib/roro/{cli/templates → templates/base}/jumpstart/Dockerfile.tt +0 -0
  57. data/lib/roro/{cli/templates → templates/base}/jumpstart/docker-compose.yml +0 -0
  58. data/lib/roro/{cli/templates → templates/base}/jumpstart/docker-entrypoint.sh +0 -0
  59. data/lib/roro/{cli/templates → templates/base}/livereload/hosts.example +0 -0
  60. data/lib/roro/{cli/templates/base → templates/base/roro}/.keep +0 -0
  61. data/lib/roro/{cli/templates/jumpstart → templates/base/roro/roro}/.keep +0 -0
  62. data/lib/roro/{cli/templates/roro → templates/base/roro/roro/containers}/.keep +0 -0
  63. data/lib/roro/{cli/templates/roro/roro → templates/base/roro/roro/containers/app}/.keep +0 -0
  64. data/lib/roro/{cli/templates/roro/roro/containers → templates/base/roro/roro/containers/frontend}/.keep +0 -0
  65. data/lib/roro/{cli/templates → templates/base}/roro/roro/docker-entrypoint.sh.tt +0 -0
  66. data/lib/roro/{cli/templates/roro/roro/containers/app → templates/rails/.circleci}/.keep +0 -0
  67. data/lib/roro/templates/rails/.circleci/config.yml.tt +11 -0
  68. data/lib/roro/templates/rails/.circleci/jobs/_build.yml +14 -0
  69. data/lib/roro/templates/rails/.circleci/jobs/_push.yml +11 -0
  70. data/lib/roro/templates/rails/.circleci/jobs/_test.yml +12 -0
  71. data/lib/roro/{cli/templates/ruby_gem → templates/rails}/.circleci/setup-gem-credentials.sh +0 -0
  72. data/lib/roro/templates/rails/.circleci/workflows/_build_test_push.yml +12 -0
  73. data/lib/roro/{cli/templates/roro/roro/containers/frontend → templates/rails}/.keep +0 -0
  74. data/lib/roro/templates/rails/Dockerfile.greenfield.tt +51 -0
  75. data/lib/roro/{cli/templates/base → templates/rails}/config/database.mysql.yml +0 -0
  76. data/lib/roro/{cli/templates/base → templates/rails}/config/database.pg.yml +2 -3
  77. data/lib/roro/templates/rails/database/with_mysql/_service.yml +10 -0
  78. data/lib/roro/{cli/templates/ruby_gem/.circleci → templates/rails/database/with_postgresql}/.keep +0 -0
  79. data/lib/roro/templates/rails/database/with_postgresql/_service.yml +7 -0
  80. data/lib/roro/{cli/templates/roro → templates/rails}/docker-compose.yml.tt +9 -10
  81. data/lib/roro/{cli/templates/ruby_gem/roro/containers → templates/rails/dotenv}/.keep +0 -0
  82. data/lib/roro/templates/rails/dotenv/database.mysql.env.tt +6 -0
  83. data/lib/roro/templates/rails/dotenv/database.pg.env.tt +4 -0
  84. data/lib/roro/templates/rails/dotenv/web.env.tt +2 -0
  85. data/lib/roro/templates/rails/kube.rake.tt +114 -0
  86. data/lib/roro/{cli/templates/ruby_gem/roro/keys → templates/rails/roro}/.keep +0 -0
  87. data/lib/roro/{cli/templates/stories → templates/rails/roro/containers}/.keep +0 -0
  88. data/lib/roro/{cli/templates/stories/rails/database/with_postgresql → templates/rails/roro/containers/app}/.keep +0 -0
  89. data/lib/roro/templates/rails/roro/containers/app/Dockerfile.tt +34 -0
  90. data/lib/roro/{cli/templates/stories/with_postgresql → templates/rails/roro/containers/frontend}/.keep +0 -0
  91. data/lib/roro/templates/rails/roro/docker-entrypoint.sh +8 -0
  92. data/lib/roro/{cli/rollon/stories/database.rb → templates/rails/roro/kube/.keep} +0 -0
  93. data/lib/roro/templates/rails/roro/kube/certificate.yml.tt +0 -0
  94. data/lib/roro/templates/rails/roro/kube/cluster-issuer.yml.tt +0 -0
  95. data/lib/roro/templates/rails/roro/kube/deployment.yml.tt +50 -0
  96. data/lib/roro/templates/rails/roro/kube/deployments/postgres_deploy.yaml +47 -0
  97. data/lib/roro/templates/rails/roro/kube/deployments/rails_deploy.yaml +62 -0
  98. data/lib/roro/templates/rails/roro/kube/deployments/redis_deploy.yaml +23 -0
  99. data/lib/roro/templates/rails/roro/kube/deployments/sidekiq_deploy.yaml +56 -0
  100. data/lib/roro/templates/rails/roro/kube/ingress.yml.tt +0 -0
  101. data/lib/roro/templates/rails/roro/kube/ingresses/ingress.yaml +13 -0
  102. data/lib/roro/templates/rails/roro/kube/job-migrate.yml.tt +0 -0
  103. data/lib/roro/templates/rails/roro/kube/jobs/setup.yaml +42 -0
  104. data/lib/roro/templates/rails/roro/kube/secret-digital-ocean.yml.tt +4 -0
  105. data/lib/roro/templates/rails/roro/kube/service.yml.tt +10 -0
  106. data/lib/roro/templates/rails/roro/kube/services/postgres_svc.yaml +13 -0
  107. data/lib/roro/templates/rails/roro/kube/services/rails_svc.yaml +13 -0
  108. data/lib/roro/templates/rails/roro/kube/services/redis_svc.yaml +13 -0
  109. data/lib/roro/templates/rails/roro/kube/volumes/postgres_volumes.yaml +25 -0
  110. data/lib/roro/templates/ruby_gem/.circleci/.keep +0 -0
  111. data/lib/roro/templates/ruby_gem/.circleci/config.yml.tt +16 -0
  112. data/lib/roro/templates/ruby_gem/.circleci/jobs/_test.yml +4 -0
  113. data/lib/roro/templates/ruby_gem/.circleci/setup-gem-credentials.sh +3 -0
  114. data/lib/roro/{cli/templates → templates}/ruby_gem/docker-compose.yml +0 -0
  115. data/lib/roro/templates/ruby_gem/roro/containers/.keep +0 -0
  116. data/lib/roro/{cli/templates → templates}/ruby_gem/roro/containers/ruby_image/Dockerfile.tt +1 -1
  117. data/lib/roro/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +1 -0
  118. data/lib/roro/templates/ruby_gem/roro/keys/.keep +0 -0
  119. data/lib/roro/version.rb +1 -1
  120. data/roro.gemspec +11 -21
  121. data/roro/containers/app/Dockerfile +51 -0
  122. metadata +165 -173
  123. data/lib/roro/cli/base/base.rb +0 -8
  124. data/lib/roro/cli/base/base_files.rb +0 -24
  125. data/lib/roro/cli/base/check_dependencies.rb +0 -98
  126. data/lib/roro/cli/base/continuous_integration.rb +0 -13
  127. data/lib/roro/cli/base/utilities.rb +0 -39
  128. data/lib/roro/cli/cli.rb +0 -99
  129. data/lib/roro/cli/configuration.rb +0 -69
  130. data/lib/roro/cli/expose.rb +0 -14
  131. data/lib/roro/cli/generate/config.rb +0 -13
  132. data/lib/roro/cli/generate/config/rails.rb +0 -17
  133. data/lib/roro/cli/greenfield.rb +0 -31
  134. data/lib/roro/cli/obfuscate.rb +0 -19
  135. data/lib/roro/cli/rollon/stories/rails.rb +0 -1
  136. data/lib/roro/cli/rollon/stories/rails/database.rb +0 -33
  137. data/lib/roro/cli/rollon/stories/ruby_gem.rb +0 -77
  138. data/lib/roro/cli/rollon/stories/stories.rb +0 -3
  139. data/lib/roro/cli/roro_configurator.yml +0 -157
  140. data/lib/roro/cli/ruby_gem.rb +0 -67
  141. data/lib/roro/cli/templates/base/.roro_config.yml +0 -15
  142. data/lib/roro/cli/templates/base/Dockerfile.tt +0 -82
  143. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +0 -43
  144. data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt +0 -40
  145. data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +0 -1
  146. data/lib/roro/cli/templates/stories/rails/database/with_mysql/_service.yml +0 -10
  147. data/lib/roro/cli/templates/stories/rails/database/with_postgresql/_service.yml +0 -7
  148. data/lib/roro/cli/templates/stories/ruby_gem/with_ci_cd/_build.yml +0 -11
  149. data/lib/roro/cli/templates/stories/with_mysql/_service.yml +0 -10
  150. data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +0 -7
  151. data/lib/tasks/deploy.rake +0 -126
  152. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  153. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  154. data/vendor/cache/activesupport-6.0.3.2.gem +0 -0
  155. data/vendor/cache/addressable-2.7.0.gem +0 -0
  156. data/vendor/cache/builder-3.2.4.gem +0 -0
  157. data/vendor/cache/byebug-11.1.3.gem +0 -0
  158. data/vendor/cache/coderay-1.1.3.gem +0 -0
  159. data/vendor/cache/concurrent-ruby-1.1.7.gem +0 -0
  160. data/vendor/cache/crass-1.0.6.gem +0 -0
  161. data/vendor/cache/em-websocket-0.5.1.gem +0 -0
  162. data/vendor/cache/erubi-1.9.0.gem +0 -0
  163. data/vendor/cache/eventmachine-1.2.7.gem +0 -0
  164. data/vendor/cache/ffi-1.13.1.gem +0 -0
  165. data/vendor/cache/formatador-0.2.5.gem +0 -0
  166. data/vendor/cache/gem-release-2.1.1.gem +0 -0
  167. data/vendor/cache/given_core-3.8.0.gem +0 -0
  168. data/vendor/cache/guard-2.16.2.gem +0 -0
  169. data/vendor/cache/guard-compat-1.2.1.gem +0 -0
  170. data/vendor/cache/guard-livereload-2.5.2.gem +0 -0
  171. data/vendor/cache/guard-minitest-2.4.6.gem +0 -0
  172. data/vendor/cache/handsome_fencer-crypto-0.1.6.gem +0 -0
  173. data/vendor/cache/handsome_fencer-test-0.1.1.gem +0 -0
  174. data/vendor/cache/http_parser.rb-0.6.0.gem +0 -0
  175. data/vendor/cache/i18n-1.8.5.gem +0 -0
  176. data/vendor/cache/launchy-2.5.0.gem +0 -0
  177. data/vendor/cache/listen-3.2.1.gem +0 -0
  178. data/vendor/cache/loofah-2.6.0.gem +0 -0
  179. data/vendor/cache/lumberjack-1.2.7.gem +0 -0
  180. data/vendor/cache/method_source-1.0.0.gem +0 -0
  181. data/vendor/cache/mini_portile2-2.4.0.gem +0 -0
  182. data/vendor/cache/minitest-5.14.1.gem +0 -0
  183. data/vendor/cache/minitest-given-3.8.0.gem +0 -0
  184. data/vendor/cache/minitest-matchers_vaccine-1.0.4.gem +0 -0
  185. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  186. data/vendor/cache/mocha-1.11.2.gem +0 -0
  187. data/vendor/cache/multi_json-1.15.0.gem +0 -0
  188. data/vendor/cache/nenv-0.3.0.gem +0 -0
  189. data/vendor/cache/net-scp-3.0.0.gem +0 -0
  190. data/vendor/cache/net-ssh-6.1.0.gem +0 -0
  191. data/vendor/cache/nokogiri-1.10.10.gem +0 -0
  192. data/vendor/cache/notiffany-0.1.3.gem +0 -0
  193. data/vendor/cache/os-1.0.0.gem +0 -0
  194. data/vendor/cache/pry-0.13.1.gem +0 -0
  195. data/vendor/cache/public_suffix-4.0.5.gem +0 -0
  196. data/vendor/cache/rack-2.2.3.gem +0 -0
  197. data/vendor/cache/rack-livereload-0.3.17.gem +0 -0
  198. data/vendor/cache/rack-test-1.1.0.gem +0 -0
  199. data/vendor/cache/rails-dom-testing-2.0.3.gem +0 -0
  200. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  201. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  202. data/vendor/cache/rake-13.0.1.gem +0 -0
  203. data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
  204. data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
  205. data/vendor/cache/shellany-0.0.1.gem +0 -0
  206. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  207. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  208. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
  209. data/vendor/cache/sorcerer-2.0.1.gem +0 -0
  210. data/vendor/cache/sshkit-1.18.2.gem +0 -0
  211. data/vendor/cache/thor-1.0.1.gem +0 -0
  212. data/vendor/cache/thread_safe-0.3.6.gem +0 -0
  213. data/vendor/cache/tzinfo-1.2.7.gem +0 -0
  214. data/vendor/cache/zeitwerk-2.4.0.gem +0 -0
@@ -1,43 +0,0 @@
1
- FROM ruby:<%= config['ruby_version'] %> AS builder
2
-
3
- ## Make sure we have yarn properly sourced:
4
- RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
5
- RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
6
-
7
- ## Update OS and download yarm from source specified above:
8
- RUN apt-get update -qq && apt-get install -y build-essential git nodejs yarn
9
-
10
- ## Set up our workspace directories:
11
- ENV APP_HOME /usr/src/app/
12
- RUN mkdir ${APP_HOME}
13
-
14
- ## Tell bundler where to store downloaded gems:
15
- ENV BUNDLE_PATH /gems
16
- RUN mkdir ${BUNDLE_PATH}}
17
-
18
- ## Tell Docker to create volumes for our workspace and gems
19
- ## so other containers can access them.
20
- VOLUME ${APP_HOME}
21
- VOLUME /gems
22
-
23
- ## Create a Gemfile with just the Rails gem inside:
24
- RUN echo "source 'https://rubygems.org'\ngem 'rails'" > Gemfile
25
-
26
- ## Bundle to install rails:
27
-
28
- ## Switch to the the work directory from container root:
29
- WORKDIR ${APP_HOME}
30
-
31
- RUN bundle install
32
- ## Use Rails to generate a new app. We'll configure it later.
33
- RUN bundle exec rails new . --skip-webpack-install --skip-bundle
34
-
35
- ## Tell docker not to create a layer:
36
- FROM scratch AS export-stage
37
-
38
- ## Copy the generated files onto the host. Note that because we are in a
39
- ## new container, we don't have access to the previous ${APP_HOME}
40
- ## variable and so we must hard code it as our source:
41
- COPY --from=builder /usr/src/app/ .
42
-
43
-
@@ -1,40 +0,0 @@
1
- version: 2.1
2
-
3
- jobs:
4
-
5
- build:
6
- machine: true
7
- steps:
8
- - checkout
9
-
10
- test:
11
- machine: true
12
- steps:
13
- - placeholder
14
-
15
- release:
16
- machine: true
17
- steps:
18
- - checkout
19
- - run: gem install roro
20
- - run: roro generate::exposed ci
21
- - run: echo 'source roro/containers/ruby_image/ci.env' >> $BASH_ENV
22
- - run: chmod +x ./.circleci/setup-gem-credentials.sh
23
- - run: ./.circleci/setup-gem-credentials.sh
24
- - run: cat ~/.gem/credentials
25
- - run: git checkout .
26
- - run: gem release
27
-
28
- workflows:
29
- version: 2
30
-
31
- build-release:
32
- jobs:
33
- - build
34
- - test
35
- - release:
36
- requires:
37
- - build
38
- filters:
39
- branches:
40
- only: release
@@ -1 +0,0 @@
1
- export RUBYGEMS_API_KEY=<%= config['rubygems_api_key'] %>
@@ -1,10 +0,0 @@
1
- database:
2
- image: mysql:5.7
3
- env_file:
4
- - roro/containers/database/development.env
5
- - roro/containers/app/development.env
6
- volumes:
7
- - db_data:/var/lib/mysql
8
- restart: always
9
- ports:
10
- - '3307:3306'
@@ -1,7 +0,0 @@
1
- database:
2
- image: postgres
3
- env_file:
4
- - roro/containers/database/development.env
5
- - roro/containers/app/development.env
6
- volumes:
7
- - db_data:/var/lib/postgresql/data
@@ -1,11 +0,0 @@
1
- build:
2
- machine: true
3
- steps:
4
- - checkout
5
-
6
- <%= 'getsome' %>
7
- - run: gem install roro
8
- - run: roro generate::exposed ci
9
- - run: echo 'source roro/containers/ruby_image/ci.env' >> $BASH_ENV
10
- - run: gem install gem-release
11
- # - run: gem release --key $RUBYGEMS_API_KEY
@@ -1,10 +0,0 @@
1
- database:
2
- image: mysql:5.7
3
- env_file:
4
- - roro/containers/database/development.env
5
- - roro/containers/app/development.env
6
- volumes:
7
- - db_data:/var/lib/mysql
8
- restart: always
9
- ports:
10
- - '3307:3306'
@@ -1,7 +0,0 @@
1
- database:
2
- image: postgres
3
- env_file:
4
- - roro/containers/database/development.env
5
- - roro/containers/app/development.env
6
- volumes:
7
- - db_data:/var/lib/postgresql/data
@@ -1,126 +0,0 @@
1
- # use SSHKit directly instead of Capistrano
2
- require 'sshkit'
3
- require 'sshkit/dsl'
4
- include SSHKit::DSL
5
-
6
- deploy_tag = ENV['DEPLOY_TAG']
7
- hostname = ENV['SERVER_HOST']
8
- user = ENV['SERVER_USER']
9
- dockerhub_user = ENV['DOCKERHUB_USER']
10
- dockerhub_pass = ENV['DOCKERHUB_PASS']
11
- dockerhub_org = ENV['DOCKERHUB_ORG']
12
- port = ENV['SERVER_PORT']
13
- deploy_env = ENV['DEPLOY_ENV'] || :production
14
- deploy_path = ENV['APP_NAME']
15
-
16
- server = SSHKit::Host.new(hostname: hostname, port: port, user: user)
17
-
18
- namespace :deploy do
19
-
20
- desc 'copy to server files needed to run and manage Docker containers'
21
- task :configs do
22
-
23
- on server do
24
- within deploy_path do
25
- upload! File.expand_path('../../docker/overrides/production.docker-compose.yml', __dir__), 'docker-compose.yml'
26
- upload! File.expand_path('../../docker', __dir__), '.', recursive: true
27
- execute 'apt', 'install', 'ruby'
28
- execute 'gem', 'install', 'handsome_fencer-circle_c_i'
29
- execute 'handsome_fencer-circle_c_i', 'expose', 'production'
30
- end
31
- end
32
- end
33
-
34
- desc 'copy production key to server'
35
- task :production_key do
36
-
37
- on server do
38
- within deploy_path do
39
-
40
- upload! '.circleci/keys/production.key', '.circleci/keys/production.key'
41
- end
42
- end
43
- end
44
-
45
- desc 'expose production environment'
46
- task :expose_production_environment do
47
-
48
- on server do
49
- within deploy_path do
50
-
51
- execute 'apt', 'install', 'ruby'
52
- execute 'gem', 'install', 'handsome_fencer-circle_c_i'
53
- execute 'handsome_fencer-circle_c_i', 'expose', 'production'
54
- end
55
- end
56
- end
57
- end
58
-
59
-
60
- namespace :docker do
61
-
62
- desc 'logs into Docker Hub for pushing and pulling'
63
-
64
- task :login do
65
- on server do
66
- execute "mkdir -p #{deploy_path}"
67
- within deploy_path do
68
- execute 'docker', 'login', '-u', dockerhub_user, '-p', dockerhub_pass
69
- end
70
- end
71
- end
72
-
73
- desc 'stops all Docker containers via Docker Compose'
74
-
75
- task stop: 'deploy:configs' do
76
- on server do
77
- within deploy_path do
78
- with rails_env: deploy_env, deploy_tag: deploy_tag do
79
- execute 'docker-compose', 'stop'
80
-
81
- end
82
- end
83
- end
84
- end
85
-
86
- desc 'starts all Docker containers via Docker Compose'
87
-
88
- task start: 'deploy:configs' do
89
- on server do
90
- within deploy_path do
91
- with rails_env: deploy_env, deploy_tag: deploy_tag do
92
- execute 'docker-compose', 'up', '-d'
93
- execute 'echo', deploy_tag , '>', 'deploy.tag'
94
- end
95
- end
96
- end
97
- end
98
-
99
- desc 'pulls images from Docker Hub'
100
-
101
- task pull: 'docker:login' do
102
- on server do
103
- within deploy_path do
104
- ["#{deploy_path}_app", "#{deploy_path}_web"].each do |image_name|
105
- execute 'docker', 'pull', "#{dockerhub_org}/#{image_name}:#{deploy_tag}"
106
- end
107
- execute 'docker', 'pull', 'postgres:9.4.5'
108
- end
109
- end
110
- end
111
-
112
-
113
- desc 'runs database migrations in application container via Docker Compose'
114
- task migrate: 'deploy:configs' do
115
- on server do
116
- within deploy_path do
117
- with rails_env: deploy_env, deploy_tag: deploy_tag do
118
- execute 'docker-compose', 'run', 'app', "bin/rails", 'db:create', 'db:migrate'
119
- end
120
- end
121
- end
122
- end
123
-
124
- desc 'pulls images, stops old containers, updates the database, and starts new containers'
125
- task deploy: %w{docker:pull docker:stop docker:migrate docker:start }
126
- end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file