Method: Controlplane#image_build

Defined in:
lib/core/controlplane.rb

#image_build(image, dockerfile:, docker_args: [], build_args: [], push: true) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/core/controlplane.rb', line 93

def image_build(image, dockerfile:, docker_args: [], build_args: [], push: true)
  # https://docs.controlplane.com/guides/push-image#step-2
  # Might need to use `docker buildx build` if compatiblitity issues arise
  cmd = "docker build --platform=linux/amd64 -t #{image} -f #{dockerfile}"
  cmd += " --progress=plain" if ControlplaneApiDirect.trace

  cmd += " #{docker_args.join(' ')}" if docker_args.any?
  build_args.each { |build_arg| cmd += " --build-arg #{build_arg}" }
  cmd += " #{config.app_dir}"
  perform!(cmd)

  image_push(image) if push
end