我有一个简单的docker-compose.yml(wp图像基于ibmjstart / wp-bluemix-container,db image是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
更多信息:
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 /相关问题
很抱歉很长的帖子:)
答案 0 :(得分:2)
@bartimar是的,问题与/etc/hosts
文件有关。它需要有一个db容器的条目,但它没有创建它。
我可以在prod-lon02-vizio1
环境中重新创建您的问题,但它在prod-lon02-kraken1
环境中运行良好。
我建议您是否要手动迁移到prod-lon02-kraken1
环境以将docker-compose.yml与IBM容器一起使用。无论如何,所有环境都将在5月25日自动迁移。
要迁移,只需运行以下命令:
$ cf ic reprovision
请注意,您的图片已迁移到新环境,但所有正在运行的容器都已删除,您必须在新环境中重新创建它们。因此请谨慎使用此选项。
有关详细信息,请查看以下链接: