![](/img/trans.png)
[英]Docker-Compose, Dockerfile and Build Image Problems (php-fpm + pecl + xdebug)
[英]Docker - docker-compose: php-fpm works from image, but don't work from build in Dockerfile
我有以下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-y安装msmtp mutt RUN echo'sendmail_path =“ / usr / bin / msmtp -t”'>> /usr/local/etc/php/conf.d/mail.ini
运行apt-get update && apt-get -y install cron
#在cron目录中添加crontab文件,添加crontab /etc/cron.d/hello-cron
#授予cron作业RUN chmod 0644 /etc/cron.d/hello-cron的执行权限
#应用cron作业RUN crontab /etc/cron.d/hello-cron
#创建日志文件以能够运行tail RUN touch /var/log/cron.log
#在容器启动CMD [“ cron”,“ -f”]上运行命令
为什么php-fpm停止工作?
PS我也看到以下区别:
当我使用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甚至都不会启动
PPS
看起来问题出在CMD ["cron", "-f"]
行中。 有人有变通办法让cron
和fpm
在同一容器中运行吗?
检查容器的日志,这是发生的,因为正如您所说的fpm不要启动,例如,在构建初始php:7.2-fpm容器后,它可能是任何错误,例如,无法安装cron
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.