Hello,
I am trying to deploy my containerized application to azure using docker compose aci context. For this I am following this tutorial: tutorial-docker-compose
It works fine, when I use a simple docker compose definition with only 3 services. See below the docker-compose.yaml that works:
version: "3"
services:
node1:
build:
context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-1.yaml -socket-address 0.0.0.0 -socket-port 8881
ports:
- 8881
networks:
local:
ipv4_address: 172.28.1.101
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
node2:
build:
context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-2.yaml -socket-address 0.0.0.0 -socket-port 8882
ports:
- 8882
networks:
local:
ipv4_address: 172.28.1.102
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
node3:
build:
context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-3.yaml -socket-address 0.0.0.0 -socket-port 8883
ports:
- 8883
networks:
local:
ipv4_address: 172.28.1.103
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
networks:
local:
driver: bridge
ipam:
config:
- subnet: 172.28.1.0/24
gateway: 172.28.1.1
The problem is when I try to increase the number of services, the containers still creating and I have the following error.
$ docker compose --verbose -f .\nodes-123.docker-compose.yaml up
level=debug msg="Up on project with name \"lab01-blockchain\""
[+] Running 1/7
- Group lab01-blockchain Created 7.7s
- node1 Creating 900.0s
- node2 Creating 900.0s
- node3 Creating 900.0s
- node4 Creating 900.0s
- node5 Creating 900.0s
- node6 Creating 900.0s
Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded
The docker-compose.yaml with 6 services is the following:
version: "3"
services:
node1:
# build:
# context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-1.yaml -socket-address 0.0.0.0 -socket-port 8881
ports:
- 8881
# networks:
# local:
# ipv4_address: 172.28.1.101
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
node2:
# build:
# context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-2.yaml -socket-address 0.0.0.0 -socket-port 8882
ports:
- 8882
# networks:
# local:
# ipv4_address: 172.28.1.102
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
node3:
# build:
# context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-3.yaml -socket-address 0.0.0.0 -socket-port 8883
ports:
- 8883
# networks:
# local:
# ipv4_address: 172.28.1.103
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
node4:
# build:
# context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-3.yaml -socket-address 0.0.0.0 -socket-port 8884
ports:
- 8884
# networks:
# local:
# ipv4_address: 172.28.1.104
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
node5:
# build:
# context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-3.yaml -socket-address 0.0.0.0 -socket-port 8885
ports:
- 8885
# networks:
# local:
# ipv4_address: 172.28.1.105
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
node6:
# build:
# context: server
image: ***.azurecr.io/node-server
command: ./server -config config/cloud-neighbour-3.yaml -socket-address 0.0.0.0 -socket-port 8886
ports:
- 8886
# networks:
# local:
# ipv4_address: 172.28.1.106
deploy:
resources:
limits:
cpus: '0.50'
memory: 1G
reservations:
cpus: '0.50'
memory: 1G
# client:
# image: ***.azurecr.io/client
# command: ./client
# networks:
# local:
# ipv4_address: 172.28.1.200
# deploy:
# resources:
# limits:
# cpus: '0.50'
# memory: 1G
# networks:
# local:
# driver: bridge
# ipam:
# config:
# - subnet: 172.28.1.0/24
# gateway: 172.28.1.1
I tried to remove the network on container to see if it is better, but not.
Please note, that I am using deploy.resources.limits on my docker-compose.yaml file to not exceed quota defined by Azure (4 CPU, 16G RAM).
Note alse, that I use the flag --verbose
when using docker compose but it seems that I didn't have more logging..