class DockerComposeConfig
Support multiple versions for docker-compose configs.
Attributes
networks[R]
services[R]
version[R]
volumes[R]
Public Class Methods
new(filepath)
click to toggle source
# File lib/docker_compose_config.rb, line 5 def initialize(filepath) parse_docker_compose_config(filepath) end
Public Instance Methods
parse_docker_compose_config(filepath)
click to toggle source
Parse the docker-compose config
# File lib/docker_compose_config.rb, line 10 def parse_docker_compose_config(filepath) f = File.read(filepath) f = f.gsub(/\$([a-zA-Z_]+[a-zA-Z0-9_]*)|\$\{(.+)\}/) { ENV[$1 || $2] } config = YAML.load(f) unless config config = YAML.load('{}') end case (config['version']) when 2,'2' parse_version_2(config) else parse_version_1(config) end end
parse_version_1(config)
click to toggle source
# File lib/docker_compose_config.rb, line 35 def parse_version_1(config) @version = 1 @services = config @volumes = nil @networks = nil end
parse_version_2(config)
click to toggle source
# File lib/docker_compose_config.rb, line 28 def parse_version_2(config) @version = 2 @services = config['services'] @volumes = config['volumes'] @networks = config['networks'] end