Para conectar los dos Docker Compose por separado usando la misma red, necesitas crear una red personalizada en Docker y luego agregar todos los servicios de los dos Docker Compose a esa red personalizada.
Aquí está el archivo de Docker Compose actualizado para Nginx Proxy Manager con el nombre de la red personalizada my-network
agregado:
version: '3.7' services: app: image: 'jc21/nginx-proxy-manager:latest' ports: - '80:80' - '81:81' - '443:443' environment: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt - ./dhparam:/etc/nginx/dhparam depends_on: - db networks: my-network: aliases: - proxy restart: always db: image: 'jc21/mariadb-aria:latest' environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql networks: my-network: aliases: - db restart: always networks: my-network: driver: bridge
Aquí está el archivo de Docker Compose actualizado para PHP + MariaDB + phpMyAdmin con el nombre de la red personalizada my-network
agregado:
version: '3.7' services: web: image: php:7.4-apache ports: - "8000:80" volumes: - ./src:/var/www/html environment: MYSQL_HOST: db MYSQL_DATABASE: myapp MYSQL_USER: user MYSQL_PASSWORD: password depends_on: - db networks: my-network: aliases: - web restart: always db: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: myapp MYSQL_USER: user MYSQL_PASSWORD: password volumes: - ./data/mysql:/var/lib/mysql networks: my-network: aliases: - db restart: always phpmyadmin: image: phpmyadmin:latest ports: - "8080:80" environment: PMA_HOST: db MYSQL_ROOT_PASSWORD: password depends_on: - db networks: my-network: aliases: - phpmyadmin restart: always networks: my-network: external: true
El archivo de Docker Compose para PHP + MariaDB + phpMyAdmin usa la red personalizada my-network
creada por el Docker Compose para Nginx Proxy Manager. La última sección networks
se asegura de que Docker Compose busque la red personalizada my-network
creada en el Docker Compose para Nginx Proxy Manager.
Para ejecutarlos hay que poner esto:
docker-compose -p nginx-proxy -f /ruta/al/docker-compose-nginx-proxy.yml up -d && docker-compose -p php-app -f /ruta/al/docker-compose-php-app.yml up -d
¡Con esta configuración, ambos Docker Compose se comunican entre sí a través de la red personalizada my-network
! Los servicios pueden acceder a otros servicios utilizando los alias configurados en las secciones networks
de cada Docker Compose.
Por ejemplo, el servicio web en el Docker Compose de PHP + MariaDB + phpMyAdmin puede acceder al servicio de la base de datos en el Docker Compose de Nginx Proxy Manager utilizando el alias db
. De manera similar, el servicio Nginx Proxy Manager puede acceder al servicio web en el Docker Compose de PHP + MariaDB + phpMyAdmin utilizando el alias web
.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.