【问题标题】:Docker php version is incorrect with docker-compose.ymlDocker php 版本与 docker-compose.yml 不正确
【发布时间】:2020-10-17 13:13:22
【问题描述】:

我是 docker 新手。我将 php 容器设置为 php 7.2 版,但 phpinfo() 显示 php 7.0 版。我做错了什么?

我的 docker-compose.yml

version: '2'
services:
    mysql:
        image: mysql:5.7
        env_file:
            - ./mysql.env
        volumes:
            - ./storage/mysql:/var/lib/mysql
    web:
        image: nginx:latest
        build: ./fitter
        container_name: web
        ports:
            - 80:80
        volumes:
            - ./fitter:/var/www
            - ./nginx-site.conf:/etc/nginx/conf.d/site.conf
            - ./storage/app:/var/www/storage/app
            - ./storage/logs:/var/www/storage/logss
        links:
            - php
    php:
        image: php:7.2-fpm
        volumes:
            - ./fitter:/var/www

还有 nginx-site.conf

server {
    index index.php index.html;

    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass fitter_docker_php_1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

类似“docker exec web php -v”的命令显示“PHP 7.0.15 (cli) (built: Jan 19 2017 21:25:43) (NTS)”

【问题讨论】:

  • docker compose down,删除所有容器,重新构建,然后重试
  • 如果你在你的 php 容器上执行 php -v 呢?我尝试了一个容器 php,我有 7.2.6

标签: php laravel docker


【解决方案1】:

关闭你的 Docker 并使用删除图像

docker rmi $(docker image ls -aq)

然后重建它们

docker-compose up --build

你去吧,基于新图像的新容器构建

【讨论】:

    【解决方案2】:

    当您使用 docker-compose 运行一组服务时,它将创建一个 docker 网络并启动该网络内的所有服务,这意味着该网络内的所有容器都可以相互通信,并且您可以使用您的名称为每个服务定义为 DNS 记录。

    改变这个:

    fastcgi_pass fitter_docker_php_1:9000;

    fastcgi_pass php:9000;

    此外,如果您更改了 php 映像版本,则必须在重新启动 compose 堆栈之前拉取新映像,因为需要使用新映像重新创建容器。

    您可以从您的 docker compose 中删除“链接”,因为在这种情况下它不是必需的,也是一个遗留功能,您可以在此处阅读更多信息:https://docs.docker.com/compose/compose-file/#links

    【讨论】:

    • 我已将 fastcgi_pass 更改为 fastcgi_pass php:9000;并且 phpinfo() 仍然显示 PHP 版本 7.0.15
    • 拉取新的php镜像后,我只看到“欢迎使用nginx!”页。它没有读取我的 index.php 文件。我打开了与 web 容器的 ssh 连接,并且在 /etc/ 目录中缺少任何 php 文件夹
    • 您确定 php 容器使用的是 7.2 映像吗?重新创建所有以防万一。 docker-compose down && docker-compose up
    猜你喜欢
    • 1970-01-01
    • 2019-04-21
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多