Sha256: 6d1f9f0f5d0d35a35420d786918a8fc174171e308dc01eb8c6977d341728ac3b
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
require 'yaml' require_relative 'common' module Kontena::Cli::Apps class DockerComposeGenerator include Common attr_reader :docker_compose_file def initialize(filename) @docker_compose_file = filename end def generate(procfile, addons, env_file) if procfile.keys.size > 0 # generate services found in Procfile docker_compose = {} procfile.keys.each do |service| docker_compose[service] = {'build' => '.' } docker_compose[service]['environment'] = ['PORT=5000'] if app_json && service == 'web' # Heroku generates PORT env variable so should we do too docker_compose[service]['command'] = "/start #{service}" if service != 'web' docker_compose[service]['env_file'] = env_file if env_file # generate addon services addons.each do |addon| addon_service = addon.split(":")[0] addon_service.slice!('heroku-') if valid_addons.has_key?(addon_service) docker_compose[service]['links'] = [] unless docker_compose[service]['links'] docker_compose[service]['links'] << "#{addon_service}:#{addon_service}" docker_compose[service]['environment'] = [] unless docker_compose[service]['environment'] docker_compose[service]['environment'] += valid_addons[addon_service]['environment'] docker_compose[addon_service] = {'image' => valid_addons[addon_service]['image']} end end end else # no Procfile found, create dummy web service docker_compose = {'web' => { 'build' => '.'}} docker_compose['web']['env_file'] = env_file if env_file end # create docker-compose.yml file create_yml(docker_compose, docker_compose_file) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kontena-cli-0.9.1 | lib/kontena/cli/apps/docker_compose_generator.rb |