0

Background:

I am trying to deploy a multi-container web app using docker-compose. Docker compose file is shared below. backoffice and frontoffice (laravel) images are being pulled from ACR. Rest 2 needs to be downloaded from docker registry itself.

Issues:

My deployments gets failed as below;

  1. against mysql and/or nginx i get below error;

2025-04-16T09:58:21.792Z ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"Head "https://registry-1.docker.io/v2/library/nginx/manifests/alpine": unauthorized: incorrect username or password"}

2025-04-16T09:58:21.795Z ERROR - Pulling docker image nginx:alpine failed: 2. When I open the Default or custom urls that have been configured for both the applications in web app, i see only nginx default page. I am unsure how to route the traffic to respective service based on custom domain. (nginx config file also attached below)

docker-compose.yml

services: ekyc-backoffice: build: context: ./dockerfiles dockerfile: Dockerfile-backoffice container_name: ekyc-backoffice image: ekyc-backoffice:latest restart: always environment: VIRTUAL_HOST: tekyc.tesspayments.com SERVICE_NAME: backoffice ports: - 9000:9000 depends_on: - ekyc-db ekyc-frontoffice: build: context: ./dockerfiles dockerfile: Dockerfile-frontoffice container_name: ekyc-frontoffice image: ekyc-frontoffice:latest restart: always environment: VIRTUAL_HOST: tmerchant-onboarding.tesspayments.com SERVICE_NAME: frontoffice ports: - 9001:9000 depends_on: - ekyc-db ekyc-nginx: image: nginx:alpine container_name: ekyc-nginx restart: always ports: - "80:80" volumes: - NGINX_SITES_CONFIG:/etc/nginx/conf.d/ depends_on: - ekyc-backoffice - ekyc-frontoffice ekyc-db: image: mysql container_name: ekyc-db restart: always environment: MYSQL_DATABASE: ${DB_DATABASE} MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_USER: ${DB_USERNAME} SERVICE_TAGS: dev SERVICE_NAME: mysql volumes: - MYSQL_DATA:/var/lib/mysql - MYSQL_LOGS:/var/log/mysql - MYSQL_QL:/docker-entrypoint-initdb.d volumes: NGINX_SITES_CONFIG: driver: azure_file driver_opts: share_name: nginx-sites-conf # Must match the Azure File Share name storage_account_name: storageekyctessprod # From your AZURE_STORAGE_ACCOUNT MYSQL_DATA: driver: azure_file driver_opts: share_name: mysql-data # Must match the Azure File Share name storage_account_name: storageekyctessprod # From your AZURE_STORAGE_ACCOUNT MYSQL_LOGS: driver: azure_file driver_opts: share_name: mysql-logs # Must match the Azure File Share name storage_account_name: storageekyctessprod # From your AZURE_STORAGE_ACCOUNT MYSQL_QL: driver: azure_file driver_opts: share_name: mysql-ql # Must match the Azure File Share name storage_account_name: storageekyctessprod # From your AZURE_STORAGE_ACCOUNT 

default.conf

server { listen 0.0.0.0:80; server_name tekyc.tesspayments.com; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; location / { proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port '443'; proxy_pass https://webapp-ekyc-prod-f0a6bpb0acfbdpah.qatarcentral-01.azurewebsites.net:9000/; } } server { listen 0.0.0.0:80; server_name tmerchant-onboarding.tesspayments.com; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; location / { proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port '443'; proxy_pass https://webapp-ekyc-prod-f0a6bpb0acfbdpah.qatarcentral-01.azurewebsites.net:9000/; } } 

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.