Class: Pygmy::Traefik

Inherits:
Object
  • Object
show all
Extended by:
DockerService
Defined in:
lib/pygmy/traefik.rb

Class Method Summary collapse

Methods included from DockerService

container_exists?, delete, has_docker_client?, ps, pull, running?, start, start_cmd, stop

Class Method Details

.connectObject



27
28
29
30
31
32
33
34
35
36
# 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_cmdObject



19
20
21
# File 'lib/pygmy/traefik.rb', line 19

def self.connect_cmd
  "docker network connect #{self.network_name} #{self.container_name}"
end

.connected?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/pygmy/traefik.rb', line 23

def self.connected?
  !!(Pygmy::DockerNetwork.inspect_containers(self.network_name) =~ /#{self.container_name}/)
end

.container_nameObject



11
12
13
# File 'lib/pygmy/traefik.rb', line 11

def self.container_name
  'traefik.docker.amazee.io'
end

.image_nameObject



7
8
9
# File 'lib/pygmy/traefik.rb', line 7

def self.image_name
  'containous/traefik'
end

.network_nameObject



15
16
17
# File 'lib/pygmy/traefik.rb', line 15

def self.network_name
  'amazeeio-network'
end

.run_cmdObject



38
39
40
41
42
43
44
45
46
47
48
49
# 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