class Docker::ConfigGenerator
Public Instance Methods
create_db_config_for_docker()
click to toggle source
# 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_file()
click to toggle source
# 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_file()
click to toggle source
# 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_config()
click to toggle source
# 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_file()
click to toggle source
# 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_ignore()
click to toggle source
# File lib/generators/docker/config/config_generator.rb, line 43 def create_docker_ignore content = <<~CODE config/database.yml config/mongoid.yml Dockerfile docker-compose*.yml docker/ lib/tasks/docker.rake CODE filename = '.dockerignore' if file? filename append_to_file filename, content else create_file filename, content end end
create_docker_task()
click to toggle source
# 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_ignore()
click to toggle source
# File lib/generators/docker/config/config_generator.rb, line 60 def create_git_ignore content = <<~CODE # See https://help.github.com/articles/ignoring-files for more about ignoring files. # # If you find yourself ignoring temporary files generated by your text editor # or operating system, you probably want to add a global ignore instead: # git config --global core.excludesfile '~/.gitignore_global' # Ignore bundler config. /.bundle # Ignore all logfiles and tempfiles. .rake_tasks /log/* !/log/.keep /tmp *~ .#* public/assets config/settings.local.yml config/settings/*.local.yml config/environments/*.local.yml config/mongoid.yml cache spring/* vendor/* CODE filename = '.gitignore' if file? filename append_to_file filename, content else create_file filename, content end end
setup()
click to toggle source
# 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
Private Instance Methods
ask_with_default(statement, default_value)
click to toggle source
# File lib/generators/docker/config/config_generator.rb, line 124 def ask_with_default(statement, default_value) answer = ask("#{statement}[#{default_value}]:", Thor::Shell::Color::BLUE) answer.present? ? answer : default_value end
db_content(db_type)
click to toggle source
# File lib/generators/docker/config/config_generator.rb, line 141 def db_content(db_type) temp_dir = File.expand_path('../templates', __FILE__) File.read("#{temp_dir}/#{db_type}.erb").chop end
default_base_image_name()
click to toggle source
# File lib/generators/docker/config/config_generator.rb, line 129 def default_base_image_name 'shaoyang/ruby:alpine' end
default_docker_repo()
click to toggle source
# File lib/generators/docker/config/config_generator.rb, line 137 def default_docker_repo ENV['DEFAULT_DOCKER_REPO'] || "docker.io/#{@author}" end
default_service_image_name()
click to toggle source
# File lib/generators/docker/config/config_generator.rb, line 133 def default_service_image_name File.basename(Dir.getwd) end
file?(path)
click to toggle source
# File lib/generators/docker/config/config_generator.rb, line 120 def file?(path) File.exist?(path) end