começando dizendo que sou totalmente novo no Docker e ainda não estou familiarizado com o ecossistema do Docker.
O que eu tento executar é criar um docker-composer.yml
para ser usado no meu ambiente de desenvolvimento local em meus projetos.
Eu já uso o wp-local-docker para meus projetos WordPress, mas também tenho projetos antigos que vêm com requisitos diferentes e, por esse motivo, eu fiz o meu próprio docker-compose.yml
. O código do meu próprio docker-compose.yml
é o seguinte:
version: "3.4"
services:
database:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: appdb
MYSQL_USER: appuser
MYSQL_PASSWORD: password
volumes:
- $PWD/data/db:/var/lib/mysql
networks:
app_net:
ipv4_address: 192.168.50.10
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
links:
- database:mysql
ports:
- "8181:80"
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: appuser
MYSQL_PASSWORD: password
PMA_HOST: mysql
PMA_PORT: 3306
PMA_USER: appuser
PMA_PASSWORD: password
networks:
app_net:
ipv4_address: 192.168.50.11
web:
build: $PWD/ApachePHP
depends_on:
- database
links:
- database:mysql
- mailcatcher
ports:
- "8080:80"
- "443:443"
volumes:
- $PWD/www:/var/www/html
- $PWD/ApachePHP/000-default.conf:/etc/apache2/sites-available/000-default.conf
environment:
- MYSQL_ROOT_PASSWORD=appuser
- MYSQL_ROOT_USER=password
networks:
app_net:
ipv4_address: 192.168.50.12
mailcatcher:
image: schickling/mailcatcher
ports:
- "1025:1025"
- "1080:1080"
environment:
MAILCATCHER_PORT: 1025
networks:
app_net:
ipv4_address: 192.168.50.13
networks:
app_net:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.50.0/24
A razão pela qual eu instalei a rede é que quando tento acessar o servidor de banco de dados, recebo um erro relacionado à rede.
Após um longo período de pesquisa, descobri que quando uso o serviço volumes
in database
, recebo o erro. Se você tentar, verá que quando tentar acessar o phpmyadmin
, receberá o mesmo erro.
Mais uma vez, após um longo período de pesquisa, descobri que posso usar o volumes
para o database
se eu configurar uma rede.
Agora, quando fiz a primeira corrida, funcionou como um encanto. Na pasta de teste, eu tinha os arquivos de banco de dados em minha pasta de host sob o caminho /data/db
Em seguida, parei a janela de encaixe para redigir usando o comando docker-compose stop
e depois mudei para outra pasta, na qual copiei o docker-compose.yml
e depois executei o docker-compose up
.
Infelizmente, desta vez, recebi o seguinte erro:
Creating network "corfurealestatedch_app_net" with driver "bridge"
ERROR: cannot create network 791b388ece09120f1138d48427969c23ded22c6fc73699b7f8c2c8e195b59586 (br-791b388ece09): conflicts with network a675c47764eba17e3338860f56512067df580cef31415906ec57fa3b64f3cdab (br-a675c47764eb): networks have overlapping IPv4
Portanto, a questão é se posso configurar o docker-compose.yml
de tal forma que ele possa ser usado em todos os meus projetos locais sem entrar em conflito com os outros IPs de contêineres.
Eu sei, é claro que posso ter um intervalo / sub-rede de IPs diferentes para cada projeto, mas estou pensando que isso pode se tornar uma bagunça em um período de tempo.
Alguma ideia de como posso corrigir isso?