Class: Docker::ConfigGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/docker/config/config_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_db_config_for_dockerObject



100
101
102
103
104
105
106
# File 'lib/generators/docker/config/config_generator.rb', line 100

def create_db_config_for_docker
  if @db_type == 'mongo'
    template 'mongoid.yml', 'config/mongoid.docker.yml'
  else
    template "database.#{@db_type}.yml", 'config/database.docker.yml'
  end
end

#create_docker_composer_debug_fileObject



108
109
110
111
# File 'lib/generators/docker/config/config_generator.rb', line 108

def create_docker_composer_debug_file
  say('creating docker composer debug file')
  template 'docker-compose.debug.yml', 'docker/docker-compose.debug.yml'
end

#create_docker_composer_fileObject



95
96
97
98
# File 'lib/generators/docker/config/config_generator.rb', line 95

def create_docker_composer_file
  say('creating docker composer file')
  template 'docker-compose.yml', 'docker/docker-compose.yml'
end

#create_docker_configObject



28
29
30
31
# File 'lib/generators/docker/config/config_generator.rb', line 28

def create_docker_config
  say('creating docker config')
  template 'dockerconfig.json', 'docker/dockerconfig.json'
end

#create_docker_fileObject



33
34
35
36
37
38
39
40
41
# File 'lib/generators/docker/config/config_generator.rb', line 33

def create_docker_file
  say('creating docker file')
  @db_config_file = if @db_type == 'mongo'
                      'mongoid'
                    else
                      'database'
    end
  template 'Dockerfile', 'docker/Dockerfile'
end

#create_docker_ignoreObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/generators/docker/config/config_generator.rb', line 43

def create_docker_ignore
  content = "config/database.yml\nconfig/mongoid.yml\nDockerfile\ndocker-compose*.yml\ndocker/\nlib/tasks/docker.rake\n"
  filename = '.dockerignore'
  if file? filename
    append_to_file filename, content
  else
    create_file filename, content
  end
end

#create_docker_taskObject



113
114
115
116
# File 'lib/generators/docker/config/config_generator.rb', line 113

def create_docker_task
  say('creating docker task')
  template 'docker.rake', 'lib/tasks/docker.rake'
end

#create_git_ignoreObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/generators/docker/config/config_generator.rb', line 60

def create_git_ignore
content = "# See https://help.github.com/articles/ignoring-files for more about ignoring files.\n#\n# If you find yourself ignoring temporary files generated by your text editor\n# or operating system, you probably want to add a global ignore instead:\n#   git config --global core.excludesfile '~/.gitignore_global'\n\n# Ignore bundler config.\n/.bundle\n\n# Ignore all logfiles and tempfiles.\n.rake_tasks\n/log/*\n!/log/.keep\n/tmp\n*~\n.#*\npublic/assets\nconfig/settings.local.yml\nconfig/settings/*.local.yml\nconfig/environments/*.local.yml\nconfig/mongoid.yml\ncache\nspring/*\nvendor/*\n"
filename = '.gitignore'
if file? filename
  append_to_file filename, content
else
  create_file filename, content
end
end

#setupObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/generators/docker/config/config_generator.rb', line 7

def setup
  config = file?('docker/dockerconfig.json') ? JSON.parse(File.read('docker/dockerconfig.json')) : {}
  @base_image_name = ask_with_default('Which Image do you want to from(Base Image)?', config['base_name'] || default_base_image_name)
  @author = ask_with_default('Who is the Author', config['author'] || ENV['USER'])
  @service_name = ask_with_default('What is the Service Name', config['service_name'] || 'app')
  db_type = %w[mongo mysql postgres]
  say('what type of DB you are using:')
  print_table(db_type.map.with_index { |a, i| [i + 1, a] })
  default_choice = if file?('config/mongoid.yml')
                     1
                   else
                     2
  end
  db_select = ask_with_default('choice:', default_choice).to_i
  @db_type = db_type[db_select - 1]
  @db = db_content(@db_type)
  @service_image_name = ask_with_default('Service Image Name ', config['image_name'] || default_service_image_name)
  @docker_repo_url = ask_with_default('Your docker repo', config['docker_repo'] || default_docker_repo)
  @secret = `rake secret`.chop
end