Class: Dckerize::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/dckerize/generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, db, extras = []) ⇒ Generator

Returns a new instance of Generator.



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
# File 'lib/dckerize/generator.rb', line 4

def initialize(name, db, extras = [])
  if db == 'mysql'
    @db              = 'mysql:5.7'
    @db_password     = 'MYSQL_ROOT_PASSWORD=mysecretpassword'
    @db_user         = 'MYSQL_USER=root'
    @db_name         = "MYSQL_DATABASE=#{name}_development"
    @data_volume_dir = '/var/lib/mysql'
    @db_service_name = 'mysql'
    @db_port = 3306
  elsif db == 'postgres'
    @db              = 'postgres:9.5.3'
    @db_password     = 'POSTGRES_PASSWORD=mysecretpassword'
    @db_user         = "POSTGRES_USER=#{name}"
    @db_name         = "POSTGRES_DB=#{name}_development"
    @data_volume_dir = '/var/lib/postgresql'
    @db_service_name = 'postgres'
    @db_port = 5432
  end
  @name = name

  @extras = Array.new
  extras.each do |extra|
    @extras << Dckerize::Extra.new(extra)
  end
end

Instance Attribute Details

#dbObject

Returns the value of attribute db.



3
4
5
# File 'lib/dckerize/generator.rb', line 3

def db
  @db
end

#extrasObject

Returns the value of attribute extras.



3
4
5
# File 'lib/dckerize/generator.rb', line 3

def extras
  @extras
end

#nameObject

Returns the value of attribute name.



3
4
5
# File 'lib/dckerize/generator.rb', line 3

def name
  @name
end

Instance Method Details

#get_bindingObject



30
31
32
# File 'lib/dckerize/generator.rb', line 30

def get_binding
  binding
end

#templatesObject



34
35
36
# File 'lib/dckerize/generator.rb', line 34

def templates
  Dckerize.templates
end

#upObject



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/dckerize/generator.rb', line 38

def up

  raise Dckerize::Runner::DOCKERFILE_EXISTS if File.exists?('Dockerfile.development')
  raise Dckerize::Runner::DOCKERCOMPOSE_EXISTS if File.exists?('docker-compose.yml')

  create_from_template('Dockerfile.erb', 'Dockerfile.development')
  create_from_template('webapp.conf.erb', "webapp.conf")
  create_from_template('setup.sh.erb', "setup.sh")
  create_from_template('rails-env.conf.erb', "rails-env.conf")
  create_from_template('docker-compose.yml.erb', "docker-compose.yml")
end