roro 0.3.14 → 0.3.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +35 -10
  3. data/Guardfile +7 -7
  4. data/lib/roro.rb +1 -1
  5. data/lib/roro/cli.rb +12 -76
  6. data/lib/roro/cli/base/check_dependencies.rb +0 -1
  7. data/lib/roro/cli/base/utilities.rb +0 -1
  8. data/lib/roro/cli/generate/config.rb +6 -8
  9. data/lib/roro/cli/generate/exposed.rb +14 -0
  10. data/lib/roro/cli/generate/{generate_keys.rb → keys.rb} +22 -0
  11. data/lib/roro/cli/generate/obfuscated.rb +17 -0
  12. data/lib/roro/cli/greenfield/rails.rb +36 -0
  13. data/lib/roro/cli/rollon.rb +2 -66
  14. data/lib/roro/cli/rollon/rails.rb +47 -0
  15. data/lib/roro/cli/rollon/{stories/rails → rails}/database.rb +3 -6
  16. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_mysql.rb +2 -2
  17. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_postgresql.rb +2 -2
  18. data/lib/roro/cli/rollon/ruby_gem.rb +1 -0
  19. data/lib/roro/cli/rollon/{stories/ruby_gem → ruby_gem}/with_ci_cd.rb +1 -1
  20. data/lib/roro/cli/rollon/stories.rb +2 -2
  21. data/lib/roro/cli/templates/base/.circleci/_defaults.yml +15 -0
  22. data/lib/roro/cli/templates/base/.circleci/_workflow.yml +2 -0
  23. data/lib/roro/cli/templates/base/.circleci/config.job-example.yml +33 -0
  24. data/lib/roro/cli/templates/base/.circleci/jobs/_build.yml +4 -0
  25. data/lib/roro/cli/templates/base/.circleci/jobs/_release.yml +12 -0
  26. data/lib/roro/cli/templates/base/.circleci/workflows/_build_release.yml +10 -0
  27. data/lib/roro/cli/templates/base/dotenv +1 -0
  28. data/lib/roro/cli/{rollon/stories/rails → templates/rails/.circleci}/.keep +0 -0
  29. data/lib/roro/cli/templates/rails/.circleci/_aliases.yml +8 -0
  30. data/lib/roro/cli/templates/rails/.circleci/config.yml.tt +15 -0
  31. data/lib/roro/cli/templates/rails/.circleci/jobs/_build.yml +16 -0
  32. data/lib/roro/cli/templates/rails/.circleci/jobs/_push.yml +23 -0
  33. data/lib/roro/cli/templates/rails/.circleci/jobs/_test.yml +10 -0
  34. data/lib/roro/cli/templates/rails/.circleci/setup-gem-credentials.sh +3 -0
  35. data/lib/roro/cli/templates/rails/.circleci/workflows/_build_test_push.yml +9 -0
  36. data/lib/roro/cli/templates/{base → rails}/.keep +0 -0
  37. data/lib/roro/cli/templates/{greenfield/Dockerfile.tt → rails/Dockerfile.greenfield.tt} +11 -7
  38. data/lib/roro/cli/templates/{base → rails}/config/database.mysql.yml +0 -0
  39. data/lib/roro/cli/templates/{base → rails}/config/database.pg.yml +0 -0
  40. data/lib/roro/cli/templates/{stories/rails → rails}/database/with_mysql/_service.yml +0 -0
  41. data/lib/roro/cli/templates/{stories/rails → rails}/database/with_postgresql/.keep +0 -0
  42. data/lib/roro/cli/templates/{stories/rails → rails}/database/with_postgresql/_service.yml +0 -0
  43. data/lib/roro/cli/{rollon/stories/database.rb → templates/rails/dotenv/.keep} +0 -0
  44. data/lib/roro/cli/templates/rails/dotenv/database.mysql.env.tt +3 -0
  45. data/lib/roro/cli/templates/rails/dotenv/database.pg.env.tt +4 -0
  46. data/lib/roro/cli/templates/rails/dotenv/web.env.tt +2 -0
  47. data/lib/roro/cli/templates/rails/roro/.keep +0 -0
  48. data/lib/roro/cli/templates/rails/roro/containers/.keep +0 -0
  49. data/lib/roro/cli/templates/rails/roro/containers/app/.keep +0 -0
  50. data/lib/roro/cli/templates/{base → rails/roro/containers/app}/Dockerfile.tt +18 -9
  51. data/lib/roro/cli/templates/rails/roro/containers/frontend/.keep +0 -0
  52. data/lib/roro/cli/templates/rails/roro/docker-compose.yml.tt +59 -0
  53. data/lib/roro/cli/templates/rails/roro/docker-entrypoint.sh.tt +8 -0
  54. data/lib/roro/cli/templates/rails/roro/roro/.keep +0 -0
  55. data/lib/roro/cli/templates/rails/roro/roro/containers/.keep +0 -0
  56. data/lib/roro/cli/templates/rails/roro/roro/containers/app/.keep +0 -0
  57. data/lib/roro/cli/templates/rails/roro/roro/containers/frontend/.keep +0 -0
  58. data/lib/roro/cli/templates/rails/roro/roro/docker-entrypoint.sh.tt +8 -0
  59. data/lib/roro/cli/templates/roro/docker-compose.yml.tt +4 -4
  60. data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt +9 -33
  61. data/lib/roro/cli/templates/stories/with_mysql/_service.yml +2 -2
  62. data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +2 -2
  63. data/lib/roro/version.rb +1 -1
  64. data/roro.gemspec +5 -5
  65. data/vendor/cache/apparition-0.6.0.gem +0 -0
  66. data/vendor/cache/capybara-3.33.0.gem +0 -0
  67. data/vendor/cache/childprocess-3.0.0.gem +0 -0
  68. data/vendor/cache/handsome_fencer-crypto-0.1.9.gem +0 -0
  69. data/vendor/cache/handsome_fencer-test-0.2.2.gem +0 -0
  70. data/vendor/cache/mini_mime-1.0.2.gem +0 -0
  71. data/vendor/cache/regexp_parser-1.7.1.gem +0 -0
  72. data/vendor/cache/rubyzip-2.3.0.gem +0 -0
  73. data/vendor/cache/selenium-webdriver-3.142.7.gem +0 -0
  74. data/vendor/cache/shoulda-2.11.3.gem +0 -0
  75. data/vendor/cache/shoulda-context-2.0.0.rc2.gem +0 -0
  76. data/vendor/cache/shoulda-matchers-4.4.1.gem +0 -0
  77. data/vendor/cache/websocket-driver-0.7.3.gem +0 -0
  78. data/vendor/cache/websocket-extensions-0.1.5.gem +0 -0
  79. data/vendor/cache/xpath-3.2.0.gem +0 -0
  80. metadata +94 -72
  81. data/lib/roro/cli/cli.rb +0 -99
  82. data/lib/roro/cli/expose.rb +0 -14
  83. data/lib/roro/cli/greenfield.rb +0 -31
  84. data/lib/roro/cli/obfuscate.rb +0 -19
  85. data/lib/roro/cli/rollon/stories/rails.rb +0 -1
  86. data/lib/roro/cli/rollon/stories/ruby_gem.rb +0 -77
  87. data/lib/roro/cli/ruby_gem.rb +0 -67
  88. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  89. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  90. data/vendor/cache/builder-3.2.4.gem +0 -0
  91. data/vendor/cache/crass-1.0.6.gem +0 -0
  92. data/vendor/cache/erubi-1.9.0.gem +0 -0
  93. data/vendor/cache/handsome_fencer-crypto-0.1.6.gem +0 -0
  94. data/vendor/cache/handsome_fencer-test-0.1.1.gem +0 -0
  95. data/vendor/cache/loofah-2.6.0.gem +0 -0
  96. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  97. data/vendor/cache/rails-dom-testing-2.0.3.gem +0 -0
  98. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  99. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  100. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  101. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  102. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
@@ -1,5 +1,3 @@
1
- require 'roro/cli/rollon/stories/rails/database/with_mysql'
2
- require 'roro/cli/rollon/stories/rails/database/with_postgresql'
3
1
  module Roro
4
2
 
5
3
  class CLI < Thor
@@ -21,10 +19,9 @@ module Roro
21
19
  end
22
20
 
23
21
  %w(development production test staging ci).each do |environment|
24
- template(
25
- 'base/.env/web.env.tt',
26
- "roro/containers/app/#{environment}.env", @config.app
27
- )
22
+ src = 'rails/dotenv/web.env.tt'
23
+ dest = "roro/containers/app/#{environment}.env"
24
+ template src, dest, @config.app
28
25
  end
29
26
  end
30
27
  end
@@ -6,13 +6,13 @@ module Roro
6
6
 
7
7
  def configure_for_mysql
8
8
  insert_db_gem('mysql2')
9
- copy_file 'base/config/database.mysql.yml', 'config/database.yml', force: true
9
+ copy_file 'rails/config/database.mysql.yml', 'config/database.yml', force: true
10
10
  config = @config.app.clone
11
11
 
12
12
  %w(development production test staging ci).each do |environment|
13
13
  config['rails_env'] = environment
14
14
 
15
- source = 'base/.env/database.mysql.env.tt'
15
+ source = 'rails/dotenv/database.mysql.env.tt'
16
16
  target = "roro/containers/database/#{environment}.env"
17
17
  template( source, target, config )
18
18
  end
@@ -6,12 +6,12 @@ module Roro
6
6
 
7
7
  def configure_for_pg
8
8
  insert_db_gem('pg')
9
- copy_file 'base/config/database.pg.yml', 'config/database.yml', force: true
9
+ copy_file 'rails/config/database.pg.yml', 'config/database.yml', force: true
10
10
  config = @config.app.clone
11
11
  %w(development production test staging ci).each do |environment|
12
12
  config['rails_env'] = environment
13
13
 
14
- source = 'base/.env/database.pg.env.tt'
14
+ source = 'rails/dotenv/database.pg.env.tt'
15
15
  target = "roro/containers/database/#{environment}.env"
16
16
  template( source, target, config )
17
17
  end
@@ -0,0 +1 @@
1
+ require 'roro/cli/rollon/ruby_gem/with_ci_cd.rb'
@@ -6,11 +6,11 @@ module Roro
6
6
 
7
7
  def rollon_ruby_gem_with_ci_cd(*args)
8
8
  ruby_gem_with_ci_cd(*args)
9
+ configure_for_rollon
9
10
  end
10
11
 
11
12
  no_commands do
12
13
  def ruby_gem_with_ci_cd(*args)
13
- configure_for_rollon
14
14
  answer = ask("\nYou can add your rubygems api key in\n\t
15
15
  './roro/containers/ruby_gem/ci.env' \n\nlater, or we'll try to add it here:",
16
16
  default: '')
@@ -1,2 +1,2 @@
1
- require 'roro/cli/rollon/stories/ruby_gem'
2
- require 'roro/cli/rollon/stories/rails'
1
+ require 'roro/cli/rollon/ruby_gem'
2
+ require 'roro/cli/rollon/rails'
@@ -0,0 +1,15 @@
1
+ defaults: &defaults
2
+ executor: machine-executor
3
+ working_directory: ~/project
4
+
5
+ version: 2.1
6
+
7
+ executors:
8
+ machine-executor:
9
+ machine:
10
+ docker_layer_caching: true
11
+ ruby-executor:
12
+ docker:
13
+ - image: cimg/ruby:2.7
14
+
15
+ jobs:
@@ -0,0 +1,2 @@
1
+ workflows:
2
+ version: 2
@@ -0,0 +1,33 @@
1
+ defaults: &defaults
2
+ working_directory: /tmp
3
+
4
+ version: 2
5
+
6
+ jobs:
7
+
8
+ build:
9
+ machine: true
10
+ steps:
11
+ - checkout
12
+ - add_ssh_keys
13
+
14
+ - run: gem install handsome_fencer-circle_c_i
15
+ - run: handsome_fencer-circle_c_i expose circleci
16
+ - run: handsome_fencer-circle_c_i expose development
17
+ - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
18
+ - run: docker-compose build
19
+ - run: docker-compose up -d
20
+ - run: docker-compose exec app bin/rails db:create db:migrate
21
+ - run: docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS
22
+ - run:
23
+ name: Tag app image
24
+ command: docker tag $(docker images | grep project_app | awk '{ print $3 }') ${DOCKERHUB_ORG_NAME}/${APP_NAME}_app:$DEPLOY_TAG
25
+ - run:
26
+ name: Tag web image
27
+ command: docker tag $(docker images | grep project_web | awk '{ print $3 }') ${DOCKERHUB_ORG_NAME}/${APP_NAME}_web:$DEPLOY_TAG
28
+
29
+
30
+ - run: docker push ${DOCKERHUB_ORG_NAME}/${APP_NAME}_app:$DEPLOY_TAG
31
+ - run: docker push ${DOCKERHUB_ORG_NAME}/${APP_NAME}_web:$DEPLOY_TAG
32
+
33
+ - run: rake --rakefile .circleci/Rakefile
@@ -0,0 +1,4 @@
1
+ build:
2
+ machine: true
3
+ steps:
4
+ - checkout
@@ -0,0 +1,12 @@
1
+ release:
2
+ machine: true
3
+ steps:
4
+ - checkout
5
+ - run: gem install roro
6
+ - run: roro generate::exposed ci
7
+ - run: echo 'source roro/containers/ruby_image/ci.env' >> $BASH_ENV
8
+ - run: chmod +x ./.circleci/setup-gem-credentials.sh
9
+ - run: ./.circleci/setup-gem-credentials.sh
10
+ - run: cat ~/.gem/credentials
11
+ - run: git checkout .
12
+ - run: gem release
@@ -0,0 +1,10 @@
1
+ build-release:
2
+ jobs:
3
+ - build
4
+ - test
5
+ - release:
6
+ requires:
7
+ - build
8
+ filters:
9
+ branches:
10
+ only: release
@@ -0,0 +1 @@
1
+ RORO_ENV=development
@@ -0,0 +1,8 @@
1
+ aliases:
2
+ - &workspace-location
3
+ at: /tmp/workspace
4
+ - &copy-ci-dotenv |
5
+ cp -rf /tmp/workspace/roro .
6
+ - &source-ci-variables |
7
+ echo 'source roro/containers/app/ci.env' >> $BASH_ENV
8
+ source $BASH_ENV
@@ -0,0 +1,15 @@
1
+ <%= yaml_from_template("rails/.circleci/_aliases.yml") %>
2
+
3
+ <%= yaml_from_template("base/.circleci/_defaults.yml") %>
4
+
5
+ <%= yaml_from_template("rails/.circleci/jobs/_build.yml") %>
6
+
7
+ <%= yaml_from_template("rails/.circleci/jobs/_test.yml") %>
8
+
9
+ <%= yaml_from_template("rails/.circleci/jobs/_push.yml") %>
10
+
11
+ <%= yaml_from_template("base/.circleci/_workflow.yml") %>
12
+
13
+ <%= yaml_from_template("rails/.circleci/workflows/_build_test_push.yml") %>
14
+
15
+
@@ -0,0 +1,16 @@
1
+ build:
2
+ <<: *defaults
3
+ steps:
4
+ - checkout
5
+ - run: |
6
+ gem install roro
7
+ roro generate::exposed ci
8
+ - run: |
9
+ mkdir -p workspace
10
+ cp -r roro workspace/
11
+ - persist_to_workspace:
12
+ root: workspace
13
+ paths:
14
+ - roro
15
+ - run: *source-ci-variables
16
+ - run: RORO_ENV=ci docker-compose up -d --build
@@ -0,0 +1,23 @@
1
+ push:
2
+ machine: true
3
+ steps:
4
+ - checkout
5
+ - run: gem install handsome_fencer-circle_c_i
6
+ - run: handsome_fencer-circle_c_i expose circleci
7
+ - run: handsome_fencer-circle_c_i expose development
8
+ - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
9
+ - run: cp docker/overrides/circleci.yml docker-compose.override.yml
10
+ - run: docker-compose build
11
+ - run: docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS
12
+ - run:
13
+ name: Tag app image
14
+ command: docker tag $(docker images | grep project_app | awk '{ print $3 }') ${DOCKERHUB_ORG}/${APP_NAME}_app:$DEPLOY_TAG
15
+ # - run: docker tag $(docker images | grep project_app | awk '{ print $3 }') ${DOCKERHUB_ORG}/${APP_NAME}_app:latest
16
+ - run:
17
+ name: Tag app image
18
+ command: docker tag $(docker images | grep project_web | awk '{ print $3 }') ${DOCKERHUB_ORG}/${APP_NAME}_web:$DEPLOY_TAG
19
+ # - run: docker tag $(docker images | grep project_web | awk '{ print $3 }') ${DOCKERHUB_ORG}/${APP_NAME}_web:latest
20
+ - run: docker push ${DOCKERHUB_ORG}/${APP_NAME}_app:$DEPLOY_TAG
21
+ - run: docker push ${DOCKERHUB_ORG}/${APP_NAME}_app:latest
22
+ - run: docker push ${DOCKERHUB_ORG}/${APP_NAME}_web:$DEPLOY_TAG
23
+ - run: docker push ${DOCKERHUB_ORG}/${APP_NAME}_web:latest
@@ -0,0 +1,10 @@
1
+ test:
2
+ <<: *defaults
3
+ steps:
4
+ - checkout
5
+ - attach_workspace: *workspace-location
6
+ - run: *copy-ci-dotenv
7
+ - run: *source-ci-variables
8
+ - run: |
9
+ RORO_ENV=ci docker-compose run web yarn
10
+ RORO_ENV=ci docker-compose run web bin/rails test
@@ -0,0 +1,3 @@
1
+ mkdir ~/.gem
2
+ echo -e "---\r\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
3
+ chmod 0600 /home/circleci/.gem/credentials
@@ -0,0 +1,9 @@
1
+ build-and-test:
2
+ jobs:
3
+ - build
4
+ - test:
5
+ requires:
6
+ - build
7
+ filters:
8
+ branches:
9
+ only: development
@@ -13,24 +13,28 @@ RUN mkdir ${APP_HOME}
13
13
 
14
14
  ## Tell bundler where to store downloaded gems:
15
15
  ENV BUNDLE_PATH /gems
16
- RUN mkdir ${BUNDLE_PATH}}
16
+ RUN mkdir ${BUNDLE_PATH}
17
17
 
18
18
  ## Tell Docker to create volumes for our workspace and gems
19
19
  ## so other containers can access them.
20
20
  VOLUME ${APP_HOME}
21
- VOLUME /gems
21
+ VOLUME ${BUNDLE_PATH}
22
+
23
+ ## Switch to the the work directory from container root:
24
+ WORKDIR ${APP_HOME}
22
25
 
23
26
  ## Create a Gemfile with just the Rails gem inside:
24
27
  RUN echo "source 'https://rubygems.org'\ngem 'rails'" > Gemfile
25
28
 
26
29
  ## Bundle to install rails:
27
-
28
- ## Switch to the the work directory from container root:
29
- WORKDIR ${APP_HOME}
30
-
31
30
  RUN bundle install
31
+
32
32
  ## Use Rails to generate a new app. We'll configure it later.
33
- RUN bundle exec rails new . --skip-webpack-install --skip-bundle
33
+ RUN bundle exec rails new .
34
+
35
+ ## setup yarn for rails:
36
+ RUN bundle exec rails yarn:install
37
+
34
38
 
35
39
  ## Tell docker not to create a layer:
36
40
  FROM scratch AS export-stage
@@ -0,0 +1,3 @@
1
+ <% config['mysql_env_vars'].each do |k,v| %><%= "\n" + k + "=" + v %><% end %>
2
+ MYSQL_DATABASE=<%= config['main_app_name'] + "_db"%>
3
+ RAILS_ENV=<%= config['rails_env'] %>
@@ -0,0 +1,4 @@
1
+ <% config['postgresql_env_vars'].each do |k,v| %><%= "\n" + k + "=" + v %><% end %>
2
+ POSTGRES_DB=<%= config['main_app_name'] + "_" + config['rails_env'] %>
3
+ RAILS_ENV=<%= config['rails_env'] %>
4
+
@@ -0,0 +1,2 @@
1
+ DATABASE_HOST=database
2
+ RAILS_LOG_TO_STDOUT=true
@@ -58,25 +58,34 @@ VOLUME ${BUNDLE_PATH}
58
58
  ## with slow-building layers that don't change often underneath smaller,
59
59
  ## lighter, qucker oens that might change a lot.
60
60
 
61
- ## Build your big, slow gem layer by first copying your Gemfile && Gemfile.lock:
62
- COPY Gemfile* ./
63
-
64
61
  ## Set your work directory:
65
62
  WORKDIR ${APP_HOME}
66
63
 
64
+ ## You may need to adjust the bundler version based on your app Gemfile.lock's
65
+ ## bundler version:
66
+ RUN gem install bundler:2.1.4
67
+
68
+ ## Set your work directory. After this line you will be running commands in
69
+ ## ${APP_HOME}. COPY instructions will move files from host to ${APP_HOME}:
70
+ WORKDIR ${APP_HOME}
71
+
72
+ ## Build your big, slow gem layer by first copying your Gemfile && Gemfile.lock:
73
+ COPY package.json ./
74
+ COPY Gemfile* ./
75
+
67
76
  ## build the bundle layer, which now only runs if your Gemfile changes:
68
77
  RUN bundle
69
78
 
70
- ## Now build a layer layer with everything in your app that's likely to change
79
+ ## Now build a layer with everything in your app that's likely to change
71
80
  ## frequently. If you make a change to any of these files, only this layer has
72
- ## to rebuild. smaller, lighter layer
81
+ ## to rebuild:
73
82
  COPY . ${APP_HOME}
74
83
 
84
+ ## Now make your entrypoint executable.
85
+ RUN chmod +x roro/docker-entrypoint.sh
75
86
 
76
- COPY roro/docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
77
- RUN chmod +x /usr/bin/docker-entrypoint.sh
78
- ENTRYPOINT ["docker-entrypoint.sh"]
79
-
87
+ ## Now update node modules:
88
+ RUN yarn
80
89
 
81
90
 
82
91
 
@@ -0,0 +1,59 @@
1
+ version: '3.2'
2
+
3
+ services:
4
+
5
+ web:
6
+ build:
7
+ context: .
8
+ dockerfile: roro/containers/app/Dockerfile
9
+ depends_on:
10
+ - database
11
+ - redis
12
+
13
+ command: ["bin/rails", "s", "-b", "0.0.0.0"]
14
+ ports:
15
+ - "3000:3000"
16
+ - "4000:4000"
17
+ volumes:
18
+ - .:/usr/src/app
19
+ - gem_cache:/gems
20
+ env_file:
21
+ - roro/containers/app/${RORO_ENV:-development}.env
22
+ - roro/containers/database/${RORO_ENV:-development}.env
23
+ environment:
24
+ - WEBPACKER_DEV_SERVER_HOST=webpack_dev_server
25
+
26
+ webpack_dev_server:
27
+ build:
28
+ context: .
29
+ dockerfile: roro/containers/app/Dockerfile
30
+
31
+
32
+ command: ./bin/webpack-dev-server
33
+ ports:
34
+ - 3035:3035
35
+ volumes:
36
+ - .:/usr/src/app
37
+ - gem_cache:/gems
38
+ env_file:
39
+ - roro/containers/app/${RORO_ENV:-development}.env
40
+ - roro/containers/database/${RORO_ENV:-development}.env
41
+ environment:
42
+ - WEBPACKER_DEV_SERVER_HOST=0.0.0.0
43
+
44
+ redis:
45
+ image: redis
46
+
47
+ <%= yaml_from_template("stories/with_#{config['database_vendor']}/_service.yml") %>
48
+
49
+ system_tests:
50
+ image: selenium/standalone-chrome-debug
51
+ logging:
52
+ driver: none
53
+ ports:
54
+ - "35729:35729"
55
+ - "5900:5900"
56
+
57
+ volumes:
58
+ db_data:
59
+ gem_cache:
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # Remove a potentially pre-existing server.pid for Rails.
5
+ rm -f /usr/src/app/tmp/pids/server.pid
6
+
7
+ # Then exec the container's main process (what's set as CMD in the Dockerfile).
8
+ exec "$@"