3
respostas

Erro ao executar o docker-compose.yml

Estou utilizando o Docker nas versões abaixo:

Docker version 1.12.6, build 78d1802
docker-compose version 1.8.0, build unknown

Só que ao tentar executar o exemplo da aula recebo esse erro abaixo.

db:
    image: mysql
    environment:
        - MYSQL_ROOT_PASSWORD=abc123

blog:
    image: wordpress
    environment:
      - WORDPRESS_DB_PASSWORD=abc123
    links:
        - db: mysql
    ports:
        - 80:80
ERROR: The Compose file './docker-compose.yml' is invalid because:
blog.links contains an invalid type, it should be a string

Tentei alterar os parâmetros para String mas deu outros erros...

3 respostas

Fala Deyve, tudo bem?

Tenta na parte "links" da seção "blog" remover "mysql" e os dois-pontos depois de "db".

Motivo: salvo engano, db é o nome da seção do docker compose à qual blog está relacionada, não? Logo, não precisa do mysql que está ali.

Faça o teste de novo com o docker-compose up -d e diz aí se deu certo.

Abraço!

A principio era isso mesmo. Mas ao executar o comando

sudo docker-compose up

Recebo o erro abaixo e não tenho MySQL instalado localmente

Version: '5.7.19'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
db_1    | 2017-09-11T19:22:44.073720Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 
db_1    | 2017-09-11T19:22:44.073731Z 0 [Note] Beginning of list of non-natively partitioned tables
db_1    | 2017-09-11T19:22:44.080980Z 0 [Note] End of list of non-natively partitioned tables
blog_1  | 
blog_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in - on line 22
blog_1  | 
blog_1  | MySQL Connection Error: (2002) Connection timed out
blog_1  | 
blog_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in - on line 22
blog_1  | 
blog_1  | MySQL Connection Error: (2002) Connection timed out
blog_1  | 
blog_1  | MySQL Connection Error: (2002) Connection timed out
blog_1  | 
blog_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in - on line 22
blog_1  | 
blog_1  | MySQL Connection Error: (2002) Connection timed out
blog_1  | 
blog_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in - on line 22
blog_1  | 
blog_1  | MySQL Connection Error: (2002) Connection timed out
blog_1  | 
blog_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in - on line 22
blog_1  | 
blog_1  | MySQL Connection Error: (2002) Connection timed out
blog_1  | 
blog_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in - on line 22
blog_1  | 
blog_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in - on line 22
blog_1  | 
blog_1  | MySQL Connection Error: (2002) Connection timed out
blog_1  | 
blog_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in - on line 22
blog_1  | 
blog_1  | MySQL Connection Error: (2002) Connection timed out

Olá Deyve,

Vi o erro na internet e parece que mais gente já o enfrentou.

Tenta na parte do "db" incluir o seguinte:

volumes:
- ./mysql/:/var/lib/mysql

E tenta dar o docker-compose up (tenta sem o sudo; se não der, aí execute com sudo).

Baseei-me nesse link:

https://github.com/docker-library/mysql/issues/81

Se ainda assim não der, talvez na parte do db você precise mapear a porta do container MySQL para uma porta real (supondo que na imagem ela já esteja exposta):

ports:
- 3306 : 3306

Avisa aí se der certo.

Abraço.

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