17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/barbeque/executor/docker.rb', line 17
def start_execution(job_execution, envs)
docker_image = DockerImage.new(job_execution.job_definition.app.docker_image)
cmd = build_docker_run_command(docker_image, job_execution.job_definition.command, envs)
stdout, stderr, status = Open3.capture3(*cmd)
if status.success?
Barbeque::DockerContainer.create!(message_id: job_execution.message_id, container_id: stdout.chomp)
job_execution.update!(status: :running)
else
Barbeque::ExecutionLog.try_save_stdout_and_stderr(job_execution, stdout, stderr)
job_execution.update!(status: :failed, finished_at: Time.zone.now)
Barbeque::SlackNotifier.notify_job_execution(job_execution)
job_execution.retry_if_possible!
end
end
|