当前位置: 首页 > 知识库问答 >
问题:

Docker-Docker compose:php fpm可以从映像中工作,但不能从内置Dockerfile中工作

曾修真
2023-03-14

我有下面的docker文章。

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|u 1 | 2018/08/02 21:19:43[错误]6#6:*5连接()在连接到上游时失败(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更新

#在cron目录中添加crontab文件Add crontab/etc/cron。你好,克朗

#给cron作业执行权限RUN chmod 0644 /etc/cron.d/hello-cron

#应用cron作业运行crontab/etc/cron。你好,克朗

#创建日志文件能够运行尾RUN触摸 /var/log/cron.log

#在容器启动CMD上运行命令["cron","-f"]

为什么php fpm停止工作?

P. S.我还看到以下区别:

当我使用图像时,我得到

fpm_1|[02-Aug-2018 21:47:50]通知:fpm正在运行,pid 1fpm_1|[02-Aug-2018 21:47:50]通知:准备处理连接

在docker写作期间。

如果我使用Dockerfile,似乎fpm甚至不启动

P.P.S。

问题似乎出现在CMD[“cron”,“-f”]行中。有人有办法让cronfpm在同一个容器中运行吗?

共有1个答案

张财
2023-03-14

检查容器的日志,这是因为正如您所说的fpm没有启动,这可能是在构建初始php之后出现的任何错误:例如,7.2-fpm容器未能安装cron

 类似资料:
  • 正如你在下面看到的,我得到了矛盾的结果。感谢所有的帮助。 Firebase控制台查询 Firebase控制台查询结果 密码 代码日志

  • 正在更新属性文件:/home/mehmet/works/netbeansprojects/hsm_java/build/built-clean.属性删除目录/home/mehmet/works/netbeansprojects/hsm_java/build 清洁: 初始化: 已创建目录:/home///netbeansprojects/hsm_java/build/empty 已创建目录:/hom

  • 我必须得到我使用ffmpeg的视频缩略图。在我的服务器上,我从ssh运行ffmpeg命令,然后它运行正常,但从php exec函数它不运行,它给出错误/usr/bin/ffmpeg:没有这样的文件或目录,但ffmpeg安装在这个位置usr/bin/ffmpeg。我的源代码是: 请提供任何解决方案。

  • 几天来,我一直在用头撞这个,完全被难倒了。下面是纲要: 我有一个Eclipse插件项目,使用Tycho通过Maven 3构建 在Maven中,我已经设置了maven-jarsigner-plugin来使用我的keystore对jars进行签名(有关keystore的详细信息,请参阅下文) 我的密钥库里有个Thawte签名的代码签名证书 我可以从目标/*中获取任何签名的jar文件,并在上面运行“ja

  • 问题内容: 已解决:问题是Wingware Python IDE。我想现在自然而然的问题是,这是怎么可能的以及如何解决。 昨天我问了一个问题Python中的multiprocessing.Pool问题,这个问题几乎相同,但是我发现它似乎可以在Windows计算机上运行,​​而不能在我的Ubuntu上运行。在本文的结尾,我将发布执行相同功能的代码的稍有不同的版本。 我的问题的简短摘要:在Python

  • 编辑:getResourceAsStream()与FileInputStream 这是我找到的最好的解释。就我个人而言,在尝试了InputStream的所有不同子类后,我觉得FileInputstream()返回的InputStream和getResourceAsStream()返回的InputStream的实现在某些方面略有不同(导致与javax.xml.parsers.不兼容)。 我会把这个打