Версия Docker php неверна с docker-compose.yml

Я новичок в докере. Я установил контейнер 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) (построено: 19 января 2017 г. 21:25:43) (NTS)»

docker собрать, удалить все контейнеры, выполнить еще одну сборку и повторить попытку

delboy1978uk 07.06.2018 13:57

а если вы выполните php -v в своем контейнере php? Я пробовал с juste контейнером php, и у меня 7.2.6

Kilian 07.06.2018 14:25
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
3 389
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Когда вы запускаете набор служб с помощью docker-compose, он создает сеть докеров и запускает все службы внутри этой сети, это означает, что все ваши контейнеры внутри этой сети могут взаимодействовать друг с другом, и вы можете использовать имя, которое вы определили для каждого сервис как запись DNS.

Измените это:

fastcgi_pass fitter_docker_php_1:9000;

К

fastcgi_pass php:9000;

Также, если вы изменили версию образа php, вам нужно вытащить новое изображение перед перезапуском стека составления, так как контейнер необходимо будет воссоздать с новым изображением.

И вы можете удалить «ссылки» из вашего докер-компоновщика, поскольку они не нужны в этом случае, а также являются устаревшей функцией, вы можете узнать больше об этом здесь: https://docs.docker.com/compose/compose-file/#links

Я заменил fastcgi_pass на fastcgi_pass php: 9000; а phpinfo () по-прежнему показывает версию PHP 7.0.15

Miłosz Marecki 07.06.2018 14:13

После загрузки нового образа php я вижу только «Добро пожаловать в nginx!» страница. Он не читал мой файл index.php. Я открыл ssh-соединение с веб-контейнером, и в каталоге / etc / отсутствуют какие-либо папки php

Miłosz Marecki 07.06.2018 14:26

Вы уверены, что контейнер php использует образ 7.2? Воссоздайте все на всякий случай. docker-compose down && docker-compose up

Esteban Garcia 08.06.2018 14:34

вниз ваш Docker и удалите изображения, используя

docker rmi $(docker image ls -aq)

затем перестроить их

docker-compose up --build

вот и все, новое строительство контейнера на основе новых изображений

Другие вопросы по теме