“Error: Task definition file does not exist: ” when deploying Docker images to AWS ECS
See original GitHub issueI am trying to push docker images from GitHub Actions to AWS ECR then to ECS with a task to deploy the latest container in AWS ECS.
I am using the default aws.config file with changes only for AWS ECR repository name, AWS ECS cluster name and it’s service name and docker image details to push docker images to AWS ECR to which could then to deployed as containers to AWS ECS by defining tasks. And I got an error message with defining tasks to deploy to ECS(in the section “Fill in the new image ID in the Amazon ECS task definition” in aws.yml) and it is:
Error: Task definition file does not exist: ecs-task-definition.json
Some information to prove everything is in place(presumably):
Here’s me checking the existence of file and pushing the task from my terminal to AWS ECS:
And here’s that very task definition with the revision number and task’s family name shown in screenshot above:
So, as you can see task-definition file does exist, but GitHub doesn’t recognise it. What has caused this error and how do I fix this?
Here’s the complete build screenshot:
And here’s the part of my “.github/workflows/aws.yml” in my repo for task definition (file can be found here in my repository)
- name: Fill in the new image ID in the Amazon ECS task definition
id: task-def
uses: aws-actions/amazon-ecs-render-task-definition@v1
with:
task-definition: ecs-task-definition.json
container-name: aws-dock-p-cont
image: ${{ steps.build-image.outputs.image }}
Images are being pushed to my ECR repository without any problems, but the problem comes right before executing tasks to use those images and deploy as containers.
EDIT: Here’s the cluster I have used in aws.yml file: Here’s the role I have specified in the task json file:
I have done as described in this article.
Issue Analytics
- State:
- Created 3 years ago
- Comments:6
Top GitHub Comments
for anyone else finding this, it turns out
task-definition:
does not obeyworking_directory
, so the relative path needs to be from the root of your repoIn my case, I had forgotten to run the checkout step.