class DockerGenerator

Public Instance Methods

add_test_config_to_database() click to toggle source
# File lib/generators/docker/docker_generator.rb, line 62
  def add_test_config_to_database
    inject_into_file 'config/database.yml', after: "test:\n" do <<-'RUBY'
  host: <%= ENV.fetch('DB_ADDRESS', 'localhost') %>
  username: <%= ENV.fetch('DB_USERNAME', '') %>
  password: <%= ENV.fetch('DB_PASSWORD', '') %>
    RUBY
    end
  end
create_docker_compose_files() click to toggle source
# File lib/generators/docker/docker_generator.rb, line 4
  def create_docker_compose_files
    create_file "docker-compose.test.yml",
<<-FILE
version: '2'

services:
  web:
    build:
      context: .
      dockerfile: ./Dockerfile
    environment:
      APP_DOMAIN: web
      GERGICH_KEY: "${GERGICH_KEY}"
      GERRIT_PROJECT: "${GERRIT_PROJECT}"
      GERRIT_HOST: "${GERRIT_HOST}"
      GERRIT_BRANCH: "${GERRIT_BRANCH}"
      DB_USERNAME: postgres
      DB_PASSWORD: #{file_name.underscore}_postgres_password
      DB_ADDRESS: postgres
    links:
      - postgres
    volumes:
      - '.git:/usr/src/app/.git'
      - "coverage:/usr/src/app/coverage"

  postgres:
    image: postgres:10.1
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: #{file_name.underscore}_postgres_password

volumes:
  coverage: {}
FILE
  end
create_docker_file() click to toggle source
# File lib/generators/docker/docker_generator.rb, line 40
     def create_docker_file
        create_file "Dockerfile",
<<-FILE
FROM ruby:2.4.3

RUN apt-get update
RUN curl -sL https://deb.nodesource.com/setup_7.x | bash - && apt-get install -y nodejs

RUN mkdir -p /usr/src/app
ADD Gemfile /usr/src/app/
ADD Gemfile.lock /usr/src/app/
ADD package.json /usr/src/app/

WORKDIR /usr/src/app
ENV RAILS_ENV test
RUN bundle install --system
RUN npm install

ADD . /usr/src/app/
FILE
  end