繁体   English   中英

Docker-docker-compose:php-fpm通过镜像工作,但是在Dockerfile中无法工作

[英]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"]行中。 有人有变通办法让cronfpm在同一容器中运行吗?

检查容器的日志,这是发生的,因为正如您所说的fpm不要启动,例如,在构建初始php:7.2-fpm容器后,它可能是任何错误,例如,无法安装cron

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM