Class: DockerGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/docker/docker_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_test_config_to_databaseObject



62
63
64
65
66
67
68
69
# 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_filesObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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_fileObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 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