Sha256: 424b92e27718c0dd7f2db1f30267800ab323dcb005adaa8708b9e163a9e800dd
Contents?: true
Size: 1.29 KB
Versions: 5
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true module Orchestration module DockerCompose class DatabaseService include ComposeHelpers def initialize(config, environment) @environment = environment @config = config end def definition return nil unless @config.enabled? return nil if adapter.name == 'sqlite3' { 'image' => adapter.image, 'environment' => adapter.environment, 'networks' => networks }.merge(ports).merge(volumes) end private def adapter name = ComposeConfiguration.new(@environment).database_adapter_name base = 'Orchestration::Services::Database::Adapters' Object.const_get("#{base}::#{name.capitalize}").new end def remote_port adapter.default_port end def networks return {} unless @environment == :deployment { 'local' => { 'aliases' => ['database-local'] } } end def ports return {} unless %i[development test].include?(@environment) { 'ports' => ["#{sidecar_port(@environment)}#{remote_port}"] } end def volumes return {} if @environment == :test { 'volumes' => ["#{@config.env.database_volume}:#{adapter.data_dir}"] } end end end end
Version data entries
5 entries across 5 versions & 1 rubygems