php - Docker:不同端口上的多个 PHP7-FPM 容器

标签 php docker

我正在为我的本地开发环境使用 Docker。我现在的设置是 5 个容器(1 个 HaProxy + 2 个 NGINX + 2 个 PHP7-FPM)。

代理容器用于根据 url 定向请求,所以如果我输入 http://project1.dev 它会将请求代理到 project1-nginx 使用 project1-php 评估 php。 http://project2.dev 的设置类似。

现在,我正在努力思考这两个 php 容器的端口。默认的 fpm 端口是 9000,所以这两个 php 容器都不能运行。我假设去这里的方法是让两个容器都导出端口 9000,但在主机上将它们设为 9000 和 9001?

我的撰写文件中的这些内容。

project_1_php:
  ports:
    - "9000:9000"
project_2_php:
  ports:
    - "9001:9000"

所以,一切正常启动,项目 1 正在运行,但项目 2 给了我一个 502。Nginx 错误日志说

2016/01/26 14:37:05 [error] 6#6: *1 connect() failed (111: Connection refused) 
while connecting to upstream, client: 172.17.0.9, server: code.dev, 
request: "GET / HTTP/1.1", upstream: "fastcgi://172.17.0.4:9001"

最佳答案

对于那些看起来像我为不同项目同时运行多个 NGINX 和 PHP-FPM 容器并找到这个 SO 线程的人,遇到了这个:

https://github.com/docker-library/php/issues/479

在 php-fpm Dockerfile 中:

FROM php:7.2-fpm
RUN sed -i 's/9000/3001/' /usr/local/etc/php-fpm.d/zz-docker.conf

然后在您的 docker-compose.yaml 文件中,您可以将 Nginx 指向该 PHP-FPM 实例的特定端口。

关于php - Docker:不同端口上的多个 PHP7-FPM 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35016435/

相关文章:

php - 如何在同一字段中的两个值的子句?

php - 使用明信片图像中的脸部(参见屏幕截图)

php - 我如何在 yii2 中将默认登录页面显示为模态弹出窗口?

php - 保持 select from wordpress 循环的值

ruby - 通过Jenkins上的嵌套Docker容器进行端口转发

java - 如何使用 Docker 文件通过 Junit 测试运行 Spring Boot 应用程序

php - CSS 文件未使用 mod_rewrite 加载

java - 扩展 docker 容器

opencv - 如何永久保存docker容器中的数据和软件?

windows - 我在Windows上进行开发,而我的产品在Linux上进行开发,如何正确处理docker-compose文件?