【发布时间】:2017-08-19 05:30:55
【问题描述】:
我正在尝试使用 official Wordpress Docker image 部署带有撰写文件的堆栈。
我已将我的撰写文件 (stack.yml) 精简为:
version: '3.1'
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
secrets:
db_password:
file: db_password.txt
除了机密之外,这几乎与文档中给出的内容完全相同。
然后我运行$ docker stack deploy -c stack.yml wordpress。
运行$ docker stack services wordpress 确认两个服务都已复制并正在运行。
NAME MODE REPLICAS
wordpress_wordpress replicated 1/1
wordpress_mysql replicated 1/1
但是,当我尝试在 Chrome 中从 http://localhost:8080 访问时,我收到以下消息:
localhost didn’t send any data.
ERR_EMPTY_RESPONSE
图像文档还提到从http://swarm-ip:8080 访问。
我尝试运行docker node inspect self --format '{{ .Status.Addr }}',它返回了IP 192.168.65.2,但是在Chrome 中访问192.168.65.2:8080 会返回ERR_CONNECTION_TIMED_OUT。
我在 Mac Sierra 10.12.6 上运行 Docker 17.06.0-ce-mac19。
这只是我特定机器上的配置错误吗?还是我遗漏了一些非常明显的东西?
【问题讨论】:
-
使用
docker service logs wordpress_wordpress并查看您在日志中看到的内容 -
@TarunLalwani 唯一看起来奇怪的是这条消息:AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 10.0.0.5。全局设置“ServerName”指令以禁止显示此消息
-
你
db_password.txt的内容是什么?我使用环境变量而不是秘密使用docker stack在我的系统上检查上述内容,这一切都对我有用 -
@TarunLalwani 我无法告诉你我多么感谢你的帮助。事实证明,这是我使用的秘密。我在秘密中输入了一些随机的单词和字符,其中包括一个
!字符。这导致mysql失败。一旦我删除了!字符,一切都正常运行了。
标签: wordpress docker docker-compose docker-swarm