lib/floe/workflow/runner/docker.rb in floe-0.7.1 vs lib/floe/workflow/runner/docker.rb in floe-0.8.0
- old
+ new
@@ -12,11 +12,12 @@
require "awesome_spawn"
require "tempfile"
super
- @network = options.fetch("network", "bridge")
+ @network = options.fetch("network", "bridge")
+ @pull_policy = options["pull-policy"]
end
def run_async!(resource, env = {}, secrets = {})
raise ArgumentError, "Invalid resource" unless resource&.start_with?("docker://")
@@ -70,20 +71,21 @@
attr_reader :network
def run_container(image, env, secrets_file)
params = run_container_params(image, env, secrets_file)
- logger.debug("Running #{AwesomeSpawn.build_command_line("docker", params)}")
+ logger.debug("Running #{AwesomeSpawn.build_command_line(self.class::DOCKER_COMMAND, params)}")
result = docker!(*params)
result.output
end
def run_container_params(image, env, secrets_file)
params = ["run"]
params << :detach
params += env.map { |k, v| [:e, "#{k}=#{v}"] }
params << [:e, "_CREDENTIALS=/run/secrets"] if secrets_file
+ params << [:pull, @pull_policy] if @pull_policy
params << [:net, "host"] if @network == "host"
params << [:v, "#{secrets_file}:/run/secrets:z"] if secrets_file
params << [:name, container_name(image)]
params << image
end