【问题标题】:nginx container is running php from hostnginx 容器正在从主机运行 php
【发布时间】:2020-07-13 09:18:54
【问题描述】:

我有两个容器 PHP 和 nginx 在它们之间链接,我希望 nginx 容器从 php 容器运行 PHP。现在它正在我的主机上运行 PHP。我该如何解决。 Bellow 是我的docker-compose.yml 文件:

> version: '3' 
> services:   
>   nginx:
>     image: nginx:alpine
>     volumes:
>       - ./app:/app
>       - ./nginx-config/:/etc/nginx/conf.d/
>     ports:
>       - 80:80
>     depends_on:
>       - php   
>   php:
>     image: php:7.3-fpm-alpine
>     volumes:
>      - ./app:/app

【问题讨论】:

  • 当你说“跑步”时,这是怎么发生的?你怎么知道它没有使用容器版本?您能否包含足够多的 nginx 配置以成为 minimal reproducible example?

标签: php docker nginx docker-compose containers


【解决方案1】:

您可以查看dockerize-nginx-php docker-compose 文件,它支持php 和nginx 的构建时间代码,还支持从挂载主机卷运行代码。

git clone https://github.com/Adiii717/dockerize-nginx-php.git
cd dockerize-nginx-php;
docker-compose -f docker-compose-buildtime.yml build
docker-compose -f docker-compose-buildtime.yml up

docker-compose.yml

version: '3'
services:
  nginx:
    build:
      context: .
      dockerfile: Dockerfile.nginx
    image: nginxbuild_time
    ports:
      - 80:80
    depends_on:
      - php
  php:
    build:
      context: .
      dockerfile: Dockerfile.php
    image: php

dockerfile.php

FROM php:7.3-fpm-alpine
WORKDIR /app
COPY app /app

Dockerfile.nginx

FROM nginx
COPY nginx-config /etc/nginx/conf.d/
COPY app /app
 

所以@Ahmed 通过在容器中安装 composer 解决了这个问题。

问题是在php容器下安装composer。所以我在PHP的DockerFile中添加了一个命令来安装composer。感谢您的支持!

【讨论】:

  • 通常是一样的。它正在检测版本 7.0.3 的主机上的 php。 i.ibb.co/wBrbzYk/Capture-du-2020-07-13-12-02-04.png
  • 您可以临时更改您的 PHP 版本。并运行 docker-compose。你会发现同样的事情!它检测主机的php版本
  • 我不认为,docker 容器已经在进程空间上运行。
  • 如果我在主机 php 7.0.33 和运行 PHP 7.2.33 的容器中运行。从逻辑上讲,问题不应该出现。
  • 已修复。问题是在php容器下安装composer。所以我在PHP的DockerFile中添加了一个命令来安装composer。感谢您的支持!
猜你喜欢
  • 1970-01-01
  • 2020-07-28
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 2021-02-03
相关资源
最近更新 更多