class Pygmy::Traefik

Public Class Methods

connect() click to toggle source
# File lib/pygmy/traefik.rb, line 27
def self.connect
  unless self.connected?
    unless Sh.run_command(self.connect_cmd).success?
      raise RuntimeError.new(
          "Failed to connect #{self.container_name} to #{self.network_name}.  Command #{self.connect_cmd} failed"
      )
    end
  end
  self.connected?
end
connect_cmd() click to toggle source
# File lib/pygmy/traefik.rb, line 19
def self.connect_cmd
  "docker network connect #{self.network_name} #{self.container_name}"
end
connected?() click to toggle source
# File lib/pygmy/traefik.rb, line 23
def self.connected?
  !!(Pygmy::DockerNetwork.inspect_containers(self.network_name) =~ /#{self.container_name}/)
end
container_name() click to toggle source
# File lib/pygmy/traefik.rb, line 11
def self.container_name
  'traefik.docker.amazee.io'
end
image_name() click to toggle source
# File lib/pygmy/traefik.rb, line 7
def self.image_name
  'containous/traefik'
end
network_name() click to toggle source
# File lib/pygmy/traefik.rb, line 15
def self.network_name
  'amazeeio-network'
end
run_cmd() click to toggle source
# File lib/pygmy/traefik.rb, line 38
def self.run_cmd
  "docker run -d " \
  "-p 80:80 -p 8080:8080 -p 443:443 " \
  "--restart always " \
  "--volume=/var/run/docker.sock:/var/run/docker.sock " \
  "--name=#{Shellwords.escape(self.container_name)} " \
  "--label traefik.frontend.rule=Host:#{Shellwords.escape(self.container_name)} " \
  "#{Shellwords.escape(self.image_name)} " \
  "--api --docker " \
  '--docker.network=amazeeio-network ' \
  "--docker.domain=docker.amazee.io"
end