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它们。 所以谨慎使用这个选项。
有关更多详情,请查看下面的链接: