Я пытаюсь запустить контейнер, используя docker compose. Я уже сделал это, используя обычные команды Docker, и это работает, но когда я делаю то же самое с помощью Docker Compose, он не работает, как ожидалось.
Я компилирую образ с помощью команды docker compose build:
docker-compose build php
и использовать этот образ для команд docker и docker-compose.
docker run -p 80:80 -v /navicu docker_php
docker-compose up php
Я легко изменяю порт одного контейнера, чтобы они никогда не рухнули. Например: порт 80 в Docker и 800 в Docker-compose.
Проблема в том, что независимо от того, что я делаю, контейнер docker-compose не работает должным образом. Он не разрешает соединения на локальном хосте (он показывает ошибку 500). С другой стороны, Docker-контейнер разрешает соединение и показывает страницу, как и ожидалось.
Вот docker-compose.yml:
php:
build: .
ports:
- "80:80"volumes:
- ./navicu:/navicu
PD: Dockerfile использует официальный образ php-apache и добавляет файл vhost.conf.
docker run
не эквивалентно составному файлу. Если вы попытаетесь
docker run -p 80:80 -v $PWD/navicu:/navicu docker_php
было бы то же самое, и я ожидаю, что вы увидите ту же ошибку 500.
Эквивалентные объемы составления будут
volumes:
- /navicu
Я полагаю, что причина ошибки 500 в том, что вы заменяете содержимое контейнера в /navicu
с файлами в каталоге хоста, которые, вероятно, не являются правильными или отсутствуют.
Других решений пока нет …