class EtFullSystem::Cli::Docker::ServerCommand

Constants

BEFORE_BOOT_SCRIPT

Public Instance Methods

down(*args) click to toggle source
# File lib/et_full_system/cli/docker/server.rb, line 54
def down(*args)
  unbundled do
    gem_root = File.absolute_path('../../../..', __dir__)
    cmd = "GEM_VERSION=#{EtFullSystem::VERSION} LOCALHOST_FROM_DOCKER_IP=#{host_ip} docker-compose -f #{gem_root}/docker/docker-compose.yml down #{args.join(' ')}"
    puts cmd
    exec(cmd)
  end
end
up(*args) click to toggle source
# File lib/et_full_system/cli/docker/server.rb, line 18
def up(*args)
  unbundled do
    server_args = []
    server_args << "--minimal" if options.minimal?
    server_args << "--without=#{options[:without].join(' ')}" unless options[:without].empty?
    env_vars = ["SERVER_ARGS='#{server_args.join(' ')}'"]
    env_vars << "LOCALHOST_FROM_DOCKER_IP=#{host_ip}"
    env_vars << "RECORD_VIDEO=#{options.record_video?}"
    if options.ccd_docker?
      env_vars << "CCD_AUTH_BASE_URL=http://#{options.ccd_docker_host}:4502"
      env_vars << "CCD_IDAM_BASE_URL=http://#{options.ccd_docker_host}:5000"
      env_vars << "CCD_DATA_STORE_BASE_URL=http://#{options.ccd_docker_host}:4452"
      env_vars << "CCD_DOCUMENT_STORE_BASE_URL=http://#{options.ccd_docker_host}:4506"
      env_vars << "CCD_GATEWAY_API_URL=http://#{options.ccd_docker_host}:3453"
      env_vars << "CCD_DOCUMENT_STORE_URL_REWRITE=#{options.ccd_docker_host}:4506:dm-store:8080"
      env_vars << "CCD_SIDAM_USERNAME=m@m.com"
      env_vars << "CCD_SIDAM_PASSWORD=Pa55word11"
      env_vars << "CCD_GENERATE_ETHOS_CASE_REFERENCE=true"
    end
    extra_args = []
    if options.with_test? && options.use_selenium?
      extra_args.concat(["--scale chrome=#{options.chrome_instances}"])
      extra_args.concat(["--scale firefox=#{options.firefox_instances}"])
    else
      extra_args.concat(['--scale selenium-hub=0', '--scale chrome=0', '--scale firefox=0'])
    end
    env_vars << "DB_PORT=#{ENV.fetch('DB_PORT', EtFullSystem.is_port_open?(5432) ? 0 : 5432)}"
    env_vars << "REDIS_PORT=#{ENV.fetch('REDIS_PORT', EtFullSystem.is_port_open?(6379) ? 0 : 6379)}"
    gem_root = File.absolute_path('../../../..', __dir__)
    cmd = "GEM_VERSION=#{EtFullSystem::VERSION} #{env_vars.join(' ')} docker-compose -f #{gem_root}/docker/docker-compose.yml up #{(extra_args + args).join(' ')}"
    puts cmd
    exec(cmd)
  end
end

Private Instance Methods

host_ip() click to toggle source
# File lib/et_full_system/cli/docker/server.rb, line 73
def host_ip
  result = JSON.parse `docker network inspect \`docker network list | grep docker_et_full_system | awk '{print $1}'\``
  result.first.dig('IPAM', 'Config').first['Gateway']
end
unbundled(&block) click to toggle source
# File lib/et_full_system/cli/docker/server.rb, line 67
def unbundled(&block)
  method = Bundler.respond_to?(:with_unbundled_env) ? :with_unbundled_env : :with_original_env
  Bundler.send(method, &block)
end