Pre-created cluster is not found #1084
Description
Description
docker compose up fails with "ClusterNotFoundException: Cluster not found" when an ECS cluster is precreated.
Steps to reproduce the issue:
- Precreate all needed resources (VPC, ALB, ECS Cluster). Check a simple terraform script.
- Specify them in
x-aws-*
variables. Check a simple compose file. - Run
docker compose --context myecs up -D
Describe the results you received:
Got the 'ClusterNotFoundException: Cluster not found.'
The output of docker compose --context myecs up -D
:
DEBU[0000] CheckRequirements if cluster was already created: arn:aws:ecs:eu-west-1:909329722030:cluster/monty-ecs-cluster
DEBU[0000] CheckRequirements on VPC : vpc-025f5d47e9a5b8496
DEBU[0001] Retrieve SubNets
DEBU[0001] Check if LoadBalancer exists: arn:aws:elasticloadbalancing:eu-west-1:909329722030:loadbalancer/app/monty-alb/08b4001ded7d6e37
DEBU[0002] Create CloudFormation stack
DEBU[0002] Stack arn:aws:cloudformation:eu-west-1:909329722030:stack/monty-app/624d08a0-4755-11eb-901d-020629eef10b created
[+] Running 10/12
[+] Running 12/12 CreateInProgress User Initiated 57.4s
⠿ monty-app DeleteComplete 209.8s
⠿ DefaultNetwork DeleteComplete 160.0s
⠿ WebTCP80TargetGroup DeleteComplete 161.0s
⠿ LogGroup DeleteComplete 61.0s
⠿ WebTaskExecutionRole DeleteComplete 162.0s
⠿ CloudMap DeleteComplete 205.0s
⠿ WebTCP80Listener DeleteComplete 157.0s
⠿ DefaultNetworkIngress DeleteComplete 53.0s
⠿ Default80Ingress DeleteComplete 53.0s
⠿ WebTaskDefinition DeleteComplete 142.0s
⠿ WebServiceDiscoveryEntry DeleteComplete 111.0s
⠿ WebService DeleteComplete 106.0s
ClusterNotFoundException: Cluster not found.
Additional facts:
-
Cluster definitely exists that can be verified by AWS GUI or
aws --profile aroot --region eu-west-1 ecs list-clusters
-
If a cluster was not pre-created, compose up succeeds.
-
It does not matter if ECS cluster was created by TerraForm or by GUI
-
Applying CloudFormation script created by convert succeeds, cluster is created:
aws --profile ecsroot cloudformation deploy --template-file converted2.cf --stack-name my-new-stack --capabilities CAPABILITY_IAM
So that means that a failing check was performed in the compose cli. Did not try to launch compose cli after applying CloudFormation though.
Describe the results you expected:
Expected that the app is up.
Additional information you deem important (e.g. issue happens only occasionally):
Output of docker version
:
Client: Docker Engine - Community
Cloud integration: 1.0.4
Version: 20.10.0
API version: 1.41
Go version: go1.13.15
Git commit: 7287ab3
Built: Tue Dec 8 18:55:43 2020
OS/Arch: darwin/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.0
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: eeddea2
Built: Tue Dec 8 18:58:04 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.4.3
GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b
runc:
Version: 1.0.0-rc92
GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Output of docker context show
:
You can also run docker context inspect context-name
to give us more details but don't forget to remove sensitive content.
[
{
"Name": "myecs",
"Metadata": {
"Type": "ecs"
},
"Endpoints": {
"docker": {
"SkipTLSVerify": false
},
"ecs": {
"Profile": "ecsroot",
"Region": "eu-west-1"
}
},
"TLSMaterial": {},
"Storage": {
"MetadataPath": "/Users/irix/.docker/contexts/meta/24835d5af7264331fc20359c2540af7e0f1ba2d94362379f4441258a5e71a631",
"TLSPath": "/Users/irix/.docker/contexts/tls/24835d5af7264331fc20359c2540af7e0f1ba2d94362379f4441258a5e71a631"
}
}
]
Output of docker info
:
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc., v0.4.2-docker)
scan: Docker Scan (Docker Inc., v0.5.0)
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 77
Server Version: 20.10.0
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 269548fa27e0089a8b8278fc4fc781d7f65a939b
runc version: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 4.19.121-linuxkit
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 2.925GiB
Name: docker-desktop
ID: <REDACTED>
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: gateway.docker.internal:3128
HTTPS Proxy: gateway.docker.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
Additional environment details (AWS ECS, Azure ACI, local, etc.):
AWS profile is set up with all IAM permissions.
Resources are in eu-west-1.
AWS CLI version:
aws-cli/2.1.13 Python/3.9.1 Darwin/19.6.0 source/x86_64 prompt/off