module DockerizeRails::DockerCommands::DockerBuild
Public Class Methods
build_mysql()
click to toggle source
# File lib/dockerize_rails/docker_commands/docker_build.rb, line 28 def self.build_mysql if DRConfig.linked_database? && DRConfig.databases[DRConfig.application_env] == 'mysql' if Docker::Image.exist? DockerHelpers.get_name(:mysql, :image) if DRNameSpace.namespace.rebuild image = Docker::Image.get DockerHelpers.get_name(:mysql, :image) puts " ==> Removing Image: #{DockerHelpers.get_name(:mysql, :image)}".blue image.remove(force: DRNameSpace.namespace.force || false) else puts " ==> Image >#{DockerHelpers.get_name(:mysql, :image)}< already exists".green return 0 end end build_docker_image( "#{Constants::CONFIG_DIRECTORY_NAME}/#{Constants::MYSQL_DIRECTORY_NAME}/Dockerfile", DockerHelpers.get_name(:mysql, :image) ) puts " ==> Image >#{DockerHelpers.get_name(:mysql, :image)}< built successfully".green end 0 rescue Docker::Error::NotFoundError => exception puts puts exception.to_s.red puts 1 end
build_postgres()
click to toggle source
# File lib/dockerize_rails/docker_commands/docker_build.rb, line 54 def self.build_postgres if DRConfig.linked_database? && DRConfig.databases[DRConfig.application_env] == 'postgresql' if Docker::Image.exist? DockerHelpers.get_name(:postgres, :image) if DRNameSpace.namespace.rebuild image = Docker::Image.get DockerHelpers.get_name(:postgres, :image) puts " ==> Removing Image: #{DockerHelpers.get_name(:postgres, :image)}".blue image.remove(force: DRNameSpace.namespace.force || false) else puts " ==> Image >#{DockerHelpers.get_name(:postgres, :image)}< already exists".green return 0 end end build_docker_image( "#{Constants::CONFIG_DIRECTORY_NAME}/#{Constants::PG_DIRECTORY_NAME}/Dockerfile", DockerHelpers.get_name(:postgres, :image) ) puts " ==> Image >#{DockerHelpers.get_name(:postgres, :image)}< built successfully".green end 0 rescue Docker::Error::NotFoundError => exception puts puts exception.to_s.red puts 1 end
build_rails()
click to toggle source
# File lib/dockerize_rails/docker_commands/docker_build.rb, line 4 def self.build_rails if Docker::Image.exist? DockerHelpers.get_name(:rails, :image) if DRNameSpace.namespace.rebuild image = Docker::Image.get DockerHelpers.get_name(:rails, :image) puts " ==> Removing Image: #{DockerHelpers.get_name(:rails, :image)}".blue image.remove(force: DRNameSpace.namespace.force || false) else puts " ==> Image >#{DockerHelpers.get_name(:rails, :image)}< already exists".green return 0 end end build_docker_image( "#{Constants::CONFIG_DIRECTORY_NAME}/#{Constants::RAILS_DIRECTORY_NAME}/Dockerfile", DockerHelpers.get_name(:rails, :image) ) puts " ==> Image >#{DockerHelpers.get_name(:rails, :image)}< built successfully".green 0 rescue Docker::Error::NotFoundError => exception puts puts exception.to_s.red puts 1 end
Private Class Methods
build_docker_image(dockerfile, repo)
click to toggle source
# File lib/dockerize_rails/docker_commands/docker_build.rb, line 80 def self.build_docker_image(dockerfile, repo) image = Docker::Image.build_from_dir('.', dockerfile: dockerfile) do |output| if DRNameSpace.namespace.stream_log begin if (log = JSON.parse(output)) && log.key?('stream') $stdout.puts log['stream'] end rescue JSON::ParserError => exception puts " ==> JSON Parse Error #{exception.to_s}".red end end end image.tag(repo: repo, tag: DRConfig.application_env) puts "Image '#{repo}:#{DRConfig.application_env}' build success".green 0 rescue Docker::Error::UnexpectedResponseError => _ puts puts " ==> An error has occurred while building Image: #{repo}:#{DRConfig.application_env}".red puts 1 rescue Excon::Error::Socket => exception puts puts exception.to_s.red puts 1 rescue Docker::Error::NotFoundError => exception puts puts exception.to_s.red puts 1 end