Class: Shiplane::ConvertDockerfile

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/shiplane/convert_dockerfile.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_folder, artifact_context, compose_context, config: nil) ⇒ ConvertDockerfile

Returns a new instance of ConvertDockerfile.



11
12
13
14
15
16
# File 'lib/shiplane/convert_dockerfile.rb', line 11

def initialize(project_folder, artifact_context, compose_context, config: nil)
  @project_folder = project_folder
  @artifact_context = artifact_context
  @compose_context = compose_context
  @shiplane_config = config || Shiplane::Configuration.new
end

Instance Attribute Details

#artifact_contextObject

Returns the value of attribute artifact_context.



6
7
8
# File 'lib/shiplane/convert_dockerfile.rb', line 6

def artifact_context
  @artifact_context
end

#compose_contextObject

Returns the value of attribute compose_context.



6
7
8
# File 'lib/shiplane/convert_dockerfile.rb', line 6

def compose_context
  @compose_context
end

#project_folderObject

Returns the value of attribute project_folder.



6
7
8
# File 'lib/shiplane/convert_dockerfile.rb', line 6

def project_folder
  @project_folder
end

#shiplane_configObject (readonly)

Returns the value of attribute shiplane_config.



7
8
9
# File 'lib/shiplane/convert_dockerfile.rb', line 7

def shiplane_config
  @shiplane_config
end

Class Method Details

.convert_output!(project_folder, artifact_context, compose_context, config: nil) ⇒ Object



54
55
56
# File 'lib/shiplane/convert_dockerfile.rb', line 54

def self.convert_output!(project_folder, artifact_context, compose_context, config: nil)
  new(project_folder, artifact_context, compose_context, config: config).convert_output!
end

Instance Method Details

#appnameObject



18
19
20
# File 'lib/shiplane/convert_dockerfile.rb', line 18

def appname
  @appname ||= project_config['appname']
end

#convert_output!Object



48
49
50
51
52
# File 'lib/shiplane/convert_dockerfile.rb', line 48

def convert_output!
  puts "Converting Dockerfile..."
  File.write(dockerfile_filepath, converted_output)
  puts "Dockerfile Converted..."
end

#converted_outputObject



40
41
42
43
44
45
46
# File 'lib/shiplane/convert_dockerfile.rb', line 40

def converted_output
  @converted_output ||= [
    File.read(dockerfile_filepath),
    File.read(dockerfile_production_stages_filepath),
    # "ENTRYPOINT #{entrypoint}",
  ].join("\n\n")
end

#dockerfile_filepathObject



28
29
30
# File 'lib/shiplane/convert_dockerfile.rb', line 28

def dockerfile_filepath
  @dockerfile_filepath ||= File.join(project_folder, dockerfile_name)
end

#dockerfile_nameObject



22
23
24
25
26
# File 'lib/shiplane/convert_dockerfile.rb', line 22

def dockerfile_name
  @dockerfile_name ||= compose_context.fetch('build', {}).fetch('context', '.').tap do |filename|
    filename.gsub!(/^\.$/, 'Dockerfile')
  end
end

#dockerfile_production_stages_filepathObject



32
33
34
# File 'lib/shiplane/convert_dockerfile.rb', line 32

def dockerfile_production_stages_filepath
  @dockerfile_production_stages_filepath ||= File.join(Dir.pwd, build_config.fetch('settings_folder', '.shiplane'), Shiplane::DEFAULT_PRODUCTION_DOCKERFILE_STAGES_FILEPATH)
end

#entrypointObject



36
37
38
# File 'lib/shiplane/convert_dockerfile.rb', line 36

def entrypoint
  @entrypoint ||= artifact_context.fetch('command', compose_context.fetch('command', "bin/rails s"))
end