Class: Shiplane::ConvertDockerfile
- Inherits:
-
Object
- Object
- Shiplane::ConvertDockerfile
- Extended by:
- Forwardable
- Defined in:
- lib/shiplane/convert_dockerfile.rb
Instance Attribute Summary collapse
-
#artifact_context ⇒ Object
Returns the value of attribute artifact_context.
-
#compose_context ⇒ Object
Returns the value of attribute compose_context.
-
#project_folder ⇒ Object
Returns the value of attribute project_folder.
-
#shiplane_config ⇒ Object
readonly
Returns the value of attribute shiplane_config.
Class Method Summary collapse
Instance Method Summary collapse
- #appname ⇒ Object
- #convert_output! ⇒ Object
- #converted_output ⇒ Object
- #dockerfile_filepath ⇒ Object
- #dockerfile_name ⇒ Object
- #dockerfile_production_stages_filepath ⇒ Object
- #entrypoint ⇒ Object
-
#initialize(project_folder, artifact_context, compose_context, config: nil) ⇒ ConvertDockerfile
constructor
A new instance of ConvertDockerfile.
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_context ⇒ Object
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_context ⇒ Object
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_folder ⇒ Object
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_config ⇒ Object (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
#appname ⇒ Object
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_output ⇒ Object
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_filepath ⇒ Object
28 29 30 |
# File 'lib/shiplane/convert_dockerfile.rb', line 28 def dockerfile_filepath @dockerfile_filepath ||= File.join(project_folder, dockerfile_name) end |
#dockerfile_name ⇒ Object
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_filepath ⇒ Object
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 |
#entrypoint ⇒ Object
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 |