Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

murilo's avatar
Level 10

Docker / How Can I do - 2 docker composes ( 2 Laravel Apps ) , 1 database , 1 phpMyAdmin

Hello , I know how to make 2 laravel Apps with 2 databases . But I woold like to do like this -

2 docker composes 2 Laravel Apps 1 database 1 phpMyAdmin

But the first Application connects to database , the second is not connecting -

FIRST APP - Docker Compose File -

version: "3.9"

networks:
  lte_sso_one:
    name: lte_sso_one
  # laral_project_api_app_laravel_workspace_api_shared:
  # external: true
services:
  server:
    # image: 'nginx:stable-alpine'
    build:
      context: .
      dockerfile: dockerfiles/nginx.dockerfile
    ports:
      - '8080:80'
    volumes:
      - ./src:/var/www/html
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      - php
      - redis
      - mysql
    container_name: lte_sso_one_server
    networks:
      - lte_sso_one
  php:
    build:
      context: .
      dockerfile: dockerfiles/php.dockerfile
    volumes:
      - ./src:/var/www/html:delegated
    networks:
      - lte_sso_one
  mysql:
    image: mysql:8.0.1
    restart: unless-stopped
    tty: true
    hostname: mysql_one_server
    env_file:
      - ./env/mysql.env
    networks:
      - lte_sso_one
    container_name: mysql_one_server
    volumes:
      - /opt/mysql_data:/var/lib/mysql
  redis:
    image: redis:alpine
    restart: unless-stopped
    ports:
      - 6379:6379
    networks:
      - lte_sso_one
  composer:
    build:
      context: ./dockerfiles
      dockerfile: composer.dockerfile
    volumes:
      - ./src:/var/www/html
    depends_on:
      - php
    networks:
      - lte_sso_one
  artisan:
    build:
      context: .
      dockerfile: dockerfiles/php.dockerfile
    volumes:
      - ./src:/var/www/html
    entrypoint: ["php", "/var/www/html/artisan"]
    depends_on:
      - mysql
    networks:
      - lte_sso_one
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    hostname: phpmyadmin
    depends_on:
      - mysql
    ports:
      - '8890:80'
    environment:
      - PMA_HOST=mysql
      - PMA_USER=root
      - PMA_PASSWORD=secret
    networks:
      - lte_sso_one

.env file

DB_CONNECTION=mysql
DB_HOST=mysql_one_server
DB_PORT=3306
DB_DATABASE=lte_sso_one
DB_USERNAME=root
DB_PASSWORD=secret

SECOND APP - Docker Compose File -

version: "3.9"

networks:
  laravel_workspace_api:
    external:
      name: laravel_workspace_api
  lte_sso_two:
  # laral_project_api_app_laravel_workspace_api_shared:
  # external: true

services:
  server:
    # image: 'nginx:stable-alpine'
    build:
      context: .
      dockerfile: dockerfiles/nginx.dockerfile
    ports:
      - '8081:80'
    volumes:
      - ./src:/var/www/html
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      - php
      - redis
      - mysql
    container_name: lte_sso_two_server
    networks:
      - lte_sso_two
  php:
    build:
      context: .
      dockerfile: dockerfiles/php.dockerfile
    volumes:
      - ./src:/var/www/html:delegated
    networks:
      - lte_sso_two
  mysql:
    image: mysql:8.0.1
    restart: unless-stopped
    tty: true
    env_file:
      - ./env/mysql.env
    networks:
      - lte_sso_two
    container_name: mysql_two_server
    volumes:
      - /opt/mysql_data:/var/lib/mysql
  redis:
    image: redis:alpine
    restart: unless-stopped
    ports:
      - 6380:6380
    networks:
      - lte_sso_two
  composer:
    build:
      context: ./dockerfiles
      dockerfile: composer.dockerfile
    volumes:
      - ./src:/var/www/html
    depends_on:
      - php
    networks:
      - lte_sso_two
  artisan:
    build:
      context: .
      dockerfile: dockerfiles/php.dockerfile
    volumes:
      - ./src:/var/www/html
    entrypoint: ["php", "/var/www/html/artisan"]
    depends_on:
      - mysql
    networks:
      - lte_sso_two
DB_CONNECTION=mysql
DB_HOST=mysql_one_server
DB_PORT=3306
DB_DATABASE=lte_sso_two
DB_USERNAME=root
DB_PASSWORD=secret

0 likes
3 replies
Tray2's avatar

Why don't you just host both of them on the same nginx server?

murilo's avatar
Level 10

@Tray2 , I could use the same nginx . but I need two docker-compose

Please or to participate in this conversation.