-
-
Save pathcl/e0d3a57d128cad277ef28953b58ffe79 to your computer and use it in GitHub Desktop.
docker exec on AWS ECS with SSM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# USAGE: CLUSTER=mycluster SERVICE=myservice ./docker-exec-ecs.sh | |
set -euf -o pipefail | |
TASK_ARN=$(aws ecs list-tasks --cluster=$CLUSTER --service=$SERVICE \ | |
| jq -r .taskArns[0]) | |
if [ "$TASK_ARN" = "null" ]; then | |
echo "Could not find any running tasks for $SERVICE on cluster:$CLUSTER." | |
exit 1 | |
fi | |
CONTAINER_INSTANCE=$(aws ecs describe-tasks --cluster=$CLUSTER --task=$TASK_ARN \ | |
| jq -r .tasks[0].containerInstanceArn) | |
INSTANCE_ID=$(aws ecs describe-container-instances --cluster=$CLUSTER --container-instances=$CONTAINER_INSTANCE \ | |
| jq -r .containerInstances[0].ec2InstanceId) | |
echo "Connecting the remote Docker host..." | |
echo "Run the following to open a shell in the container:" | |
bold=$(tput bold) | |
normal=$(tput sgr0) | |
echo $bold' sudo docker exec -it $(curl -s http://localhost:51678/v1/tasks?taskarn='$TASK_ARN' | jq -r .Containers[0].DockerId) bash'$normal | |
aws ssm start-session --target=$INSTANCE_ID |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment