Module: DeployDoc::Docker

Defined in:
lib/deploy_doc/docker.rb

Class Method Summary collapse

Class Method Details

.cmd(configuration, envs, cmd, extra_opts = []) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/deploy_doc/docker.rb', line 3

def self.cmd(configuration, envs, cmd, extra_opts = [])
  data_dir = if configuration.data_dir == "."
               Dir.pwd
             else
               configuration.data_dir
             end

  docker_cmd = [
    "docker", 
    "run", 
    "-it",
    "--rm", 
    envs, 
    "-v#{data_dir}:/deploy_doc/data/",
    "-w/deploy_doc/data/"
  ]

  # Expose the host host docker daemon in the child docker container.
  docker_socket_protocol, docker_socket_address = configuration.docker_socket.split("://",2)
  case docker_socket_protocol
  when "unix"
    docker_cmd.push "-v#{docker_socket_address}:/var/run/docker.sock"
  when "tcp"
    docker_cmd.push "-e DOCKER_HOST='#{configuration.docker_socket}'"
  else
    raise DeployDocError.new("Unkown docker socket protocol '#{docker_socket_protocol}'")
  end

  docker_cmd += extra_opts
  docker_cmd += [configuration.docker_image, cmd]
  docker_cmd.join(" ")
end