Closed ghost closed 1 year ago
I'm having the same issue. Here are the things I've tried to far-
None of these got this action to work while disproving other issues. I think i'm just going to go with writing my own script here.
Never mind, I'm a silly goose. I had container-name
as the name of the container or repo in ecr not the name of the container in the task definition or more specifically the container definition.
Updating that fixed it and works on 1.1.3 for me.
The action is now working without issues.
In case this action is not working for you, here's an alternative:
#!/bin/bash
# Check if the new image parameter is provided
if [ $# -eq 0 ]; then
echo "Usage: $0 <new_image>"
exit 1
fi
# Read the new image from the command line argument
new_image=$1
# Read the JSON file into a variable
json_data=$(cat task-definition.json)
# Use jq to update the "image" field with the new value
updated_json=$(echo "$json_data" | jq --arg new_image "$new_image" '.containerDefinitions[0].image = $new_image')
# Save the updated JSON back to the file
echo "$updated_json" > task-definition.json
Run like:
./aws-ecs-task-def-renderer.sh <YOUR_NEW_IMAGE_TAG_HERE>
I'm using this action with the latest version as well as with the v1.1.3, for one ECS Service, it works just fine, for the other service it does not. Rendering of the ECS Task fails with
Error: Invalid task definition: Could not find container definition with matching name
. I have checked the ECS Task JSON and it contains the container name.Both Services are identical in terms of ECS Task def structure. Just Env. vars are different.
Here my current action step:
@vitalykarasik was somehow able to get it to work (see Issue), still we don't know why it does not work in this case.
Any Idea or hint on how to fix this is highly appreciated.