WordPress无法在IBM Bluemix上看到与Docker组合的链接的MySQL容器

我有一个简单的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后导出dockervariables

更多信息:

 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容器logging这一点

 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文件有关。 它需要有一个分贝容器的条目,但它不是创build它。

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

我build议你是否要手动迁移到prod-lon02-kraken1环境,以便在IBM容器中使用prod-lon02-kraken1 。 无论如何,所有环境都将在5月25日自动迁移。

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

 $ cf ic reprovision 

请注意,你的图像被迁移到新的环境, 但所有正在运行的容器被删除,你将不得不在新的环境中重新创build它们。 所以谨慎使用这个选项。

有关更多详情,请查看下面的链接:

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