Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

conexão entre containers - docker-compose.yml

db:
        image: mysql
        environment:
                - MYSQL_ROOT_PASSWORD=teste123

blog:
        image: wordpress
        environment:
                - WORDPRESS_DB_PASSWORD=teste123
        links:
                - db:mysql
        ports:
                - 80:80

O container blog não consegue conectar-se ao container db, alguém sabe qual a causa provável?

Attaching to blog_db_1, blog_blog_1 db_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message blog_1 | WordPress not found in /var/www/html - copying now... blog_1 | Complete! WordPress has been successfully copied to /var/www/html blog_1 | blog_1 | MySQL Connection Error: (2002) Connection refused blog_1 | blog_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22 blog_1 | blog_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22 b

5 respostas

Olá Mawer, tudo bem?

Estranho mesmo, eu rodei esses comandos por aqui e consegui instalar o wordpress. Uma sugestão, tente mapear a porta 80 do container para outra porta do seu host, por exemplo 3190, ou seja, tente trocar a última linha para:

3190:80

Abs

Quando executo estes mesmos comando na mão ou com o shell scritp eles funcionam e comunicam entre si. O problema acontece apenas ao executar o docker-compose up. Acredito que o problema seja exactamente o contrário, ou seja é o apache que não consegue ligar-se ao db (3306) e não o contrário, ainda assim fiz a alteração sugerida e continua a apresentar o mesmo erro. Existirá outros parâmetros para assegurar que apache consegue conectar-se ao container db e a porta 3306?

solução!

Olá Mawer,

Analisando o log, vejo que tem a mensagem de Connection refused. Você conseguiria confirmar se você está rodando o MySQL na sua máquina local? Se estiver, tente parar a execução e executar o docker-compose.

Abs

Boas Rafael, Não sei porque o container blog_db_1 mostra o apacher a rodar quando devia ser o mysql, vou tentar perceber o que originou esta alteração.

Rafael, acontece que eu tinha mais de uma imagem mysql e por alguma razão o dockerfile estava agarrado a imagem errada. Eliminei todas as imagens relacionadas e executando de novo ele fez o pull de nova imagem e já está a funcionar bonitinho.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software