class Object
Public Instance Methods
compose()
click to toggle source
# File bin/rainbow, line 41 def compose compose = %{ version: '2' services: frontend: image: {imagename} ports: - "8080" environment: - KEY=value volumes: - /home/user/data:/opt/rainbow networks: rainbow: aliases: - frontend backend: image: {imagename} hostname: gateway environment: KEY: value networks: rainbow: aliases: - backend networks: rainbow: driver: bridge } IO.write("docker-compose.yml", compose) end
image()
click to toggle source
# File bin/rainbow, line 21 def image yaml = IO.read("Rainbowfile") obj = YAML.load(yaml) dependencies = obj["dependencies"] run = obj["run"] binding.local_variable_set(:dependencies, dependencies) template = %{ FROM ubuntu:14.04 RUN apt-get update && apt-get install -y --force-yes <% dependencies.each do |dependency| %><%= dependency %> <% end %>\n CMD <%= run %> } docker_file = ERB.new(template, 0, '>').result(binding).strip IO.write("Dockerfile", docker_file) system("docker build -t rainbow .") end
init()
click to toggle source
Create a template Rainbowfile
# File bin/rainbow, line 9 def init rainbow_file = %{ #Rainbowfile template dependencies: - openjdk-7-jre - ruby run: ruby /opt/rainbow/rainbow.rb } IO.write("Rainbowfile", rainbow_file) end
run()
click to toggle source
# File bin/rainbow, line 74 def run system("docker-compose up -d") end