Josh Hallinan
02/14/2022, 9:27 PMECSRunLauncher
along with a specified task_definition
. When I execute a pipeline from dagit, ECS correctly starts up the runner task definition, but the container running is not overridden with the user code docker image. Is there some configuration I am missing? I will add config notes in thread.
The user code image has DOCKER_CURRENT_IMAGE
DAGSTER_CURRENT_IMAGE
defined. The task_defintion
has a single container defined with image which is the image running dagster-daemon/dagit. We define the task_definition
as an environment variable passed to dagit and dagster-daemon.daniel
02/14/2022, 9:28 PMJosh Hallinan
02/14/2022, 9:30 PMDAGSTER_CURRENT_IMAGE
is defined, not DOCKER_CURRENT_IMAGE
Josh Hallinan
02/14/2022, 9:31 PMINF | 2022-02-14 | 21:24:25.330836 | Begin program execution of [dagster,api,execute_run,
{
"__class__": "ExecuteRunArgs",
"instance_ref": {
"__class__": "InstanceRef",
"compute_logs_data": {
"__class__": "ConfigurableClassData",
"class_name": "LocalComputeLogManager",
"config_yaml": "base_dir: /opt/dagster/dagster_home/storage\n",
"module_name": "dagster.core.storage.local_compute_log_manager"
},
"custom_instance_class_data": null,
"event_storage_data": {
"__class__": "ConfigurableClassData",
"class_name": "PostgresEventLogStorage",
"config_yaml": "postgres_db:\n db_name:\n env: DAGSTER_POSTGRES_DB\n hostname:\n env: DAGSTER_POSTGRES_HOST\n password:\n env: DAGSTER_POSTGRES_PASSWORD\n port: 5432\n username:\n env: DAGSTER_POSTGRES_USER\n",
"module_name": "dagster_postgres.event_log"
},
"local_artifact_storage_data": {
"__class__": "ConfigurableClassData",
"class_name": "LocalArtifactStorage",
"config_yaml": "base_dir: /opt/dagster/dagster_home/\n",
"module_name": "dagster.core.storage.root"
},
"run_coordinator_data": {
"__class__": "ConfigurableClassData",
"class_name": "DefaultRunCoordinator",
"config_yaml": "{}\n",
"module_name": "dagster.core.run_coordinator"
},
"run_launcher_data": {
"__class__": "ConfigurableClassData",
"class_name": "EcsRunLauncher",
"config_yaml": "container_name: runner\ntask_definition: arn:aws:ecs:us-east-1:123456789:task-definition/team-dagster-runner:9\n",
"module_name": "dagster_aws.ecs"
},
"run_storage_data": {
"__class__": "ConfigurableClassData",
"class_name": "PostgresRunStorage",
"config_yaml": "postgres_db:\n db_name:\n env: DAGSTER_POSTGRES_DB\n hostname:\n env: DAGSTER_POSTGRES_HOST\n password:\n env: DAGSTER_POSTGRES_PASSWORD\n port: 5432\n username:\n env: DAGSTER_POSTGRES_USER\n",
"module_name": "dagster_postgres.run_storage"
},
"schedule_storage_data": {
"__class__": "ConfigurableClassData",
"class_name": "PostgresScheduleStorage",
"config_yaml": "postgres_db:\n db_name:\n env: DAGSTER_POSTGRES_DB\n hostname:\n env: DAGSTER_POSTGRES_HOST\n password:\n env: DAGSTER_POSTGRES_PASSWORD\n port: 5432\n username:\n env: DAGSTER_POSTGRES_USER\n",
"module_name": "dagster_postgres.schedule_storage"
},
"scheduler_data": {
"__class__": "ConfigurableClassData",
"class_name": "DagsterDaemonScheduler",
"config_yaml": "{}\n",
"module_name": "dagster.core.scheduler"
},
"settings": {}
},
"pipeline_origin": {
"__class__": "PipelinePythonOrigin",
"pipeline_name": "run_load",
"repository_origin": {
"__class__": "RepositoryPythonOrigin",
"code_pointer": {
"__class__": "FileCodePointer",
"fn_name": "repo",
"python_file": "syncing_pipeline.py",
"working_directory": "/opt/dagster/dagster_home"
},
"container_image": "docker.internal/team/staging:latest",
"entry_point": [
"dagster"
],
"executable_path": "/usr/local/bin/python"
}
},
"pipeline_run_id": "1234",
"set_exit_code_on_failure": null
}]
Josh Hallinan
02/14/2022, 9:39 PM[
{
"name": "staging",
"image": "docker.private/team/data-loader:latest",
"essential": true,
"portMappings": [
{
"containerPort": 8888,
"hostPort": 8888
}
],
"environment": [
{"name": "HTTP_PROXY", "value": "${PROXY_URL}"},
{"name": "HTTPS_PROXY", "value": "${PROXY_URL}"},
{"name": "NO_PROXY", "value": "${NO_PROXY}"},
{"name": "DAGSTER_CURRENT_IMAGE", "value": "docker.private/team/data-loader:latest"},
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-region": "us-east-1",
"awslogs-group": "${LOG_GROUP}",
"awslogs-stream-prefix": "staging"
}
}
}
]
Josh Hallinan
02/14/2022, 9:52 PM[
{
"entryPoint": [
"entrypoint"
],
"portMappings": [],
"command": null,
"environment": [],
"image": "docker.private/team/dagster:latest",
"essential": true
}
]
daniel
02/14/2022, 9:54 PMJosh Hallinan
02/14/2022, 9:56 PMteam/dagster
is the daemon/dagit imagedaniel
02/14/2022, 9:56 PMJosh Hallinan
02/14/2022, 9:56 PMdaniel
02/14/2022, 9:56 PMdaniel
02/14/2022, 9:57 PMJosh Hallinan
02/14/2022, 9:58 PMJosh Hallinan
02/14/2022, 10:00 PM"message": "Could not load pipeline definition."
combined with ECS showing the running task's container image still being the dagit/daemon imageJosh Hallinan
02/14/2022, 10:01 PMdaniel
02/14/2022, 10:03 PMdaniel
02/14/2022, 10:03 PMJosh Hallinan
02/14/2022, 10:06 PMDAGSTER_CURRENT_IMAGE
defined on the repository would override the runner's task definition imageJosh Hallinan
02/14/2022, 10:15 PMdaniel
02/14/2022, 10:17 PMJosh Hallinan
02/14/2022, 10:20 PMJosh Hallinan
02/14/2022, 10:21 PMdaniel
02/14/2022, 10:27 PMJosh Hallinan
02/14/2022, 10:30 PM