HomeElementl

Don't inherit entryPoint from Task Definition

Description

Don't inherit entryPoint from Task Definition

Summary:
The EcsRunLauncher constructs a Task Definition based on the Task
Definition its current process. It then launches a new Task with a
commandOverride.

Because of how Docker treats ENTRYPOINT and CMD, if a Task Definition
has an entryPoint set and a Task has a commandOverride set, the
container will run with the entryPoint and commandOverride concatenated
together:

https://aws.amazon.com/blogs/opensource/demystifying-entrypoint-cmd-docker/

That means we could end up running:

dagster-daemon run ... dagster api execute_run ...

Which will error with:

Error: Got unexpected extra arguments (dagster api execute_run {...})

We've had several users bump into this both with the EcsRunLauncher and
the DockerRunLauncher. This change fixes the EcsRunLauncher so that it
ignores entryPoint when inheriting and constructing a new Task
Definition. However, it doesn't completely guard against this class of
errors: users might still run into this issue when their image contains
an ENTRYPOINT.

Test Plan: unit

Reviewers: dgibson, alangenfeld, rexledesma, johann

Reviewed By: johann

Differential Revision: https://dagster.phacility.com/D8910

Details

Provenance
jordansandersAuthored on Jul 15 2021, 8:06 PM
Reviewer
johann
Differential Revision
D8910: Don't inherit entryPoint from Task Definition
Parents
R1:0be25391c791: fix algolia config
Branches
Unknown
Tags
Unknown