Есть docker-compose.yml который запускает 2 контейнера (mysql-5.7 и mysql-8.0)
docker-compose.yml (mysql)
version: '3'
services:
mysql-5.7:
image: mysql:5.7
volumes:
- ./database/5.7:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
networks:
- mysql-5.7-network
ports:
- 3307:3306
mysql-8.0:
image: mysql:8.0
volumes:
- ./database/8.0:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
networks:
- mysql-8.0-network
ports:
- 3308:3306
networks:
mysql-5.7-network:
name: mysql-5.7-network
driver: bridge
mysql-8.0-network:
name: mysql-8.0-network
driver: bridge
И есть несколько проектов, некоторые из которых будут использовать mysql7, а другие Mysql5.7.
Вот docker-compose.yml который их запускает:
docker-compose.yml (projects)
version: '3'
services:
main-project1:
container_name: main-project1
build:
./main-project1
volumes:
- ./main-project1/src:/var/www/html
- ./main-project1/nginx/log:/var/www/log
ports:
- 8001:80
networks:
- main-mysql-5.7
main-project2:
container_name: main-project2
build:
./main-project2
volumes:
- ./main-project2/src:/var/www/html
- ./main-project2/nginx/log:/var/www/log
ports:
- 8002:80
networks:
- main-mysql-5.7
networks:
main-mysql-5.7:
external:
name: mysql-5.7-network
main-mysql-8.0:
external:
name: mysql-8.0-network
сервер настроен дефолтно (nginx+php7.1/5.6/7.0/7.4), на всякий случай скину Dockerfile (они все плюс минус одинаково настроены):
Dockerfile
FROM ubuntu:20.04
RUN apt-get update && apt-get upgrade -y
RUN apt install software-properties-common -y
RUN add-apt-repository ppa:ondrej/php
RUN apt-get update
RUN apt-get install php7.1-fpm php7.1-mbstring php7.1-curl php7.1-xml php7.1-xdebug php7.1-gd php7.1-mysql php7.1-intl php7.1-xsl php7.1-zip php7.1-memcache php7.1-memcached -y
RUN apt-get install nginx -y
RUN mkdir /var/www/log
COPY ./nginx/config /etc/nginx/sites-available
CMD service php7.1-fpm start && nginx -g "daemon off;"
Так вот, я создал контейнеры mysql, и контейнеры с проектами.
Я добавил их в нужные сети "mysql-5.7-network" на пример.
Когда я пишу что то на подобе этого в index.php:
$dbh = new PDO('mysql:host=mysql-5.7-network;dbname=test', 'roots', 'secret');
Он ругается на то что хоста нет. В чем ошибка?