Class: Avm::EacRedmineBase0::Instances::DockerImage

Inherits:
Instances::DockerImage
  • Object
show all
Defined in:
lib/avm/eac_redmine_base0/instances/docker_image.rb

Constant Summary collapse

APACHE_HOST_DOCKERFILE_SUBPATH =
'apache_host_dockerfile'
APACHE_PATH_DOCKERFILE_SUBPATH =
'apache_path_dockerfile'
INSTALLER_TARGET_TASK_WITH_WEB_PATH_BLANK =
'redmine_as_apache_base'
INSTALLER_TARGET_TASK_WITH_WEB_PATH_PRESENT =
'redmine_as_apache_path'
REDMINE_SOURCE_HOST_SUBPATH =
'redmine_source'
SSH_SERVER_INSTALL =
<<~CODE
  RUN sudo apt-get install -y openssh-server
  EXPOSE 22/tcp
CODE

Instance Method Summary collapse

Instance Method Details

#apache_setupObject



25
26
27
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 25

def apache_setup
  template.child(apache_setup_dockerfile).apply(self)
end

#apache_setup_dockerfileString

Returns:

  • (String)


30
31
32
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 30

def apache_setup_dockerfile
  web_path_present? ? APACHE_PATH_DOCKERFILE_SUBPATH : APACHE_HOST_DOCKERFILE_SUBPATH
end

#avm_fs_cache_object_idObject



21
22
23
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 21

def avm_fs_cache_object_id
  instance.id
end

#base_imageObject



34
35
36
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 34

def base_image
  eac_ubuntu_base0_instance.docker_image.provide.id
end

#installer_target_taskObject



38
39
40
41
42
43
44
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 38

def installer_target_task
  if web_path_present?
    INSTALLER_TARGET_TASK_WITH_WEB_PATH_PRESENT
  else
    INSTALLER_TARGET_TASK_WITH_WEB_PATH_BLANK
  end
end

#redmine_pathObject



54
55
56
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 54

def redmine_path
  "#{redmine_user_home}/redmine_app"
end

#redmine_userObject



46
47
48
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 46

def redmine_user
  eac_ubuntu_base0_instance.docker_image.user_name
end

#redmine_user_homeObject



50
51
52
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 50

def redmine_user_home
  eac_ubuntu_base0_instance.docker_image.user_home
end

#skip_databaseObject



58
59
60
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 58

def skip_database
  ENV.fetch('SKIP_DATABASE', nil)
end

#ssh_server_installString

Optionally install the SSH server.

Returns:

  • (String)


64
65
66
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 64

def ssh_server_install
  ENV.fetch('SSH_SERVER', false).to_bool ? SSH_SERVER_INSTALL : ''
end

#start_pathObject



68
69
70
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 68

def start_path
  '/start.sh'
end

#web_path_present?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 72

def web_path_present?
  ::Addressable::URI.parse(instance.web_url).path.present?
end

#write_in_provide_dirObject



76
77
78
79
80
81
82
# File 'lib/avm/eac_redmine_base0/instances/docker_image.rb', line 76

def write_in_provide_dir
  super

  ::Avm::EacRedmineBase0::Instances::Deploy.template.child('config')
    .child('install.sh')
    .apply_to_file(variables_source, provide_dir.join('install_settings.sh'))
end