Я новичок в докере. Я установил контейнер 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)»
а если вы выполните php -v в своем контейнере php? Я пробовал с juste контейнером php, и у меня 7.2.6






Когда вы запускаете набор служб с помощью 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
После загрузки нового образа php я вижу только «Добро пожаловать в nginx!» страница. Он не читал мой файл index.php. Я открыл ssh-соединение с веб-контейнером, и в каталоге / etc / отсутствуют какие-либо папки php
Вы уверены, что контейнер php использует образ 7.2? Воссоздайте все на всякий случай. docker-compose down && docker-compose up
вниз ваш Docker и удалите изображения, используя
docker rmi $(docker image ls -aq)
затем перестроить их
docker-compose up --build
вот и все, новое строительство контейнера на основе новых изображений
docker собрать, удалить все контейнеры, выполнить еще одну сборку и повторить попытку