我的码头-Compose.yml看起来是这样的:
version: '3.3'
services:
frontend:
build: frontend
container_name: yii-frontend
ports:
- 20080:80
volumes:
# Re-use local composer cache via host-volume
- ~/.composer-docker/cache:/root/.composer/cache:delegated
# Mount source-code for development
- ./:/app
networks:
- my-marian-net
backend:
build: backend
container_name: yii-backend
ports:
- 21080:80
volumes:
# Re-use local composer cache via host-volume
- ~/.composer-docker/cache:/root/.composer/cache:delegated
# Mount source-code for development
- ./:/app
networks:
- my-marian-net
db:
image: mysql:8.0
container_name: mysql8
command: --user=root --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_ROOT_PASSWORD=verysecret
- MYSQL_DATABASE=yii2advanced
- MYSQL_USER=yii2advanced
- MYSQL_PASSWORD=secret
ports:
- 6033:3306
networks:
- my-marian-net
networks:
my-marian-net:
driver: bridge我收到一条错误消息:
'SQLSTATEHY000 php_network_getaddresses: getaddrinfo失败: nodename或servname提供或不知道‘
我尝试过的解决办法:
来自后端和前端容器的
到目前为止还没联系上。在我的代码中,我使用"db“作为主机名,因为我使用的是桥模式。
在尝试了不同的解决方案后,我已经将这个问题从外部码头隔离到一个连接,有什么建议吗?
我正在使用macOS Mojave。码头版19.03
发布于 2020-03-20 05:15:02
这个问题比我想象的要简单,从外部容器"db“服务不存在,因此没有可能连接。
将来,当我从本地运行控制台命令时,我会将数据库连接中的主机更改为使用localhost而不是"db“,或者连接到容器本身并从内部运行它们。
感谢@Smankusors的帮助。
https://stackoverflow.com/questions/60768344
复制相似问题