class Dip::Commands::Nginx::Up

Public Class Methods

new(name:, socket:, net:, publish:, image:, domain:, certs:) click to toggle source
# File lib/dip/commands/nginx.rb, line 10
def initialize(name:, socket:, net:, publish:, image:, domain:, certs:)
  @name = name
  @socket = socket
  @net = net
  @publish = publish
  @image = image
  @domain = domain
  @certs = certs
end

Public Instance Methods

execute() click to toggle source
# File lib/dip/commands/nginx.rb, line 20
def execute
  exec_subprocess("docker", "network create #{@net}", panic: false, err: File::NULL)
  exec_subprocess("docker", "run #{container_args} #{@image}")
end

Private Instance Methods

container_args() click to toggle source
# File lib/dip/commands/nginx.rb, line 27
def container_args
  result = %w[--detach]
  result << "--volume #{@socket}:/tmp/docker.sock:ro"
  result << "--volume #{@certs}:/etc/nginx/certs" unless @certs.to_s.empty?
  result << "--restart always"
  result << Array(@publish).map { |p| "--publish #{p}" }.join(" ")
  result << "--net #{@net}"
  result << "--name #{@name}"
  result << "--label com.dnsdock.alias=#{@domain}"
  result.join(" ")
end