我有以下docker-compose。
version: "2"
services:
nginx:
image: nginx:latest
restart: always
ports:
- "8026:80"
volumes:
- ./web:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
links:
- fpm
fpm:
image: php:7.2-fpm
#build: php-fpm/.
restart: always
volumes:
- ./web:/var/www/html
- ./php-fpm/msmtprc:/etc/msmtprc
expose:
- "9000"
它工作正常,打开相关的URL时可以看到我的页面。
但发表评论后
image: php:7.2-fpm
并取消注释
build: php-fpm/.
并在php-fpm /中使用这样的Dockerfile,我在nginx中得到502错误,并且在日志中出现了这样的错误:
nginx_1 | 2018/08/02 21:19:43 [错误] 6#6:* 5连接到上游时connect()失败(111:连接被拒绝),客户端:192.168.176.1,服务器:,请求:“ GET / report / post.php HTTP / 1.0”,上游:“ fastcgi://192.168.176.2:9000”,主机:“ api.mytestdomain.com”
从php:7.2-fpm
运行apt-get更新&& apt-get -y安装msmtp mutt RUN echo'sendmail_path =“ / usr / bin / msmtp -t”'>> /usr/local/etc/php/conf.d/mail.ini
运行apt-get更新&& apt-get -y安装cron
#在cron目录中添加crontab文件 添加crontab /etc/cron.d/hello-cron
#赋予cron作业执行权 运行chmod 0644 /etc/cron.d/hello-cron
#应用cron作业 运行crontab /etc/cron.d/hello-cron
#创建能够运行tail的日志文件 运行touch /var/log/cron.log
#在容器启动时运行命令 CMD [“ cron”,“ -f”]
为什么php-fpm停止工作?
P.S。 我还看到以下区别:
使用image
时,我得到
fpm_1 | [02-Aug-2018 21:47:50]注意:fpm正在运行,pid 1 fpm_1 | [02-Aug-2018 21:47:50]注意:准备处理连接
在docker-compose up期间。
如果我使用的是Dockerfile,似乎fpm甚至无法启动
P.P.S。
看起来像问题出在CMD ["cron", "-f"]
行中。有人有变通办法让cron
和fpm
在同一个容器中运行吗?
答案 0 :(得分:0)
检查容器的日志,这是发生的,因为正如您所说的fpm无法启动,例如,在构建初始php:7.2-fpm容器后,它可能是任何错误,例如,无法安装cron