gpt4 book ai didi

docker - Wordpress在带有Docker Compose的IBM Bluemix上看不到链接的mysql容器

转载 作者:行者123 更新时间:2023-12-02 21:26:34 26 4
gpt4 key购买 nike

我有一个简单的docker-compose.yml(wp图像基于ibmjstart / wp-bluemix-container,db图像为mariadb)

db:
image: registry.eu-gb.bluemix.net/foo/db
environment:
MYSQL_ROOT_PASSWORD: examplepass
ports:
- 3306:3306
volumes:
- /var/lib/mysql

wp:
image: registry.eu-gb.bluemix.net/foo/wp
links:
- db:mysql
ports:
- 80:80

执行 docker compose up -d后,我得到
error: missing WORDPRESS_DB_HOST and MYSQL_PORT_3306_TCP environment variables
Did you forget to --link some_mysql_container:mysql or set an external db
with -e WORDPRESS_DB_HOST=hostname:port?

如您所见,db容器已链接。

当我在没有docker-compose的情况下执行相同操作时,使用
$ cf ic run -v mysql-vol:/var/lib/mysql --name wpdb  -d registry.eu-gb.bluemix.net/foo/db    
$ cf ic run -e MYSQL_ROOT_PASSWORD=my-secret-pw -v web-files:/var/www/html/ --link wpdb:mysql -d registry.eu-gb.bluemix.net/foo/wp

一切正常。

我确实在 cf ic login之后导出docker变量

更多信息:
root@vps:~/test/compose# docker-compose --version
docker-compose version 1.7.0, build 0d7bf73
root@vps:~/test/compose# docker --version
Docker version 1.10.3, build 20f81dd
root@vps:~/test/compose# cf --version
cf version 6.15.0+fa1bfe2-2016-01-13
root@vps:~/test/compose# cf ic --version
Docker version 1.10.3, build 20f81dd

更新:据我了解,此问题是由命名引起的:

此docker-compose.yml引发错误
db:
image: registry.eu-gb.bluemix.net/foo/db
environment:
MYSQL_ROOT_PASSWORD: examplepass
container_name:
wpdb
ports:
- 3306:3306
volumes:
- /var/lib/mysql

wp:
image: registry.eu-gb.bluemix.net/foo/wp
links:
- wpdb:mysql
ports:
- 80:80

错误:服务“wp”具有指向服务“wpdb”的链接,该链接不存在。

但是,如果将服务和容器命名为相同,则语法可以。
db:
image: registry.eu-gb.bluemix.net/foo/db
environment:
MYSQL_ROOT_PASSWORD: examplepass
container_name:
db
ports:
- 3306:3306
volumes:
- /var/lib/mysql

wp:
image: registry.eu-gb.bluemix.net/foo/wp
links:
- db:mysql
ports:
- 80:80

尽管语法可以确定并且容器已链接,但wordpress容器会记录此内容
Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10    
MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known

这是Bluemix中的错误吗?看起来像是/ etc / hosts /相关的问题

抱歉很长的帖子:)

最佳答案

@bartimar是的,问题与/etc/hosts文件有关。它需要为db容器添加一个条目,但没有创建它。

我可以在prod-lon02-vizio1环境中重新创建您的问题,但是在prod-lon02-kraken1环境中可以正常工作。

我建议您手动迁移到prod-lon02-kraken1环境,以将docker-compose.yml与IBM容器一起使用。无论如何,所有环境都会在5月25日自动迁移。

要迁移,只需运行以下命令:

$ cf ic reprovision

请注意,您的镜像已迁移到新环境 ,但是所有正在运行的容器都已删除,您将不得不在新环境中重新创建它们。 因此,请谨慎使用此选项。

有关更多详细信息,请查看下面的链接:

https://developer.ibm.com/bluemix/2016/03/24/new-deployment-architecture-for-containers/?linkId=22660520

关于docker - Wordpress在带有Docker Compose的IBM Bluemix上看不到链接的mysql容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37088337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com