Как запустить PHP-скрипт на докере?

Вопрос задан: 8 месяцев назад Последняя активность: 8 месяцев назад
up 3 down

У меня есть index.php:

<?php
echo "Hello World";
?>

Dockerfile с сайта: https://docs.docker.com/samples/library/php/

FROM php:7.2-cli
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php" ]

Я строю образ и запускаю контейнер:

docker build -t my-php-app .
docker run -p 7000:80 --rm --name hello-world-test my-php-app

Я вижу только текст "Hello World", но мое приложение не работает в hTTP: // локальный: 7000 / зачем?

1 ответ

up 2 down

Вы можете сохранить то же базовое изображение, что и у вас php:7.2-cli, :

FROM php:7.2-cli
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php" ]

построить изображение:

docker build -t my-php-app .

запустить его:

docker run --rm --name hello-world-test my-php-app

Вы получите:

Hello World

Все, что вы сделали, было правильно, кроме сопоставления портов (-p 7000:80) который не нужен, потому что вы не запускаете веб-сервер.

== РЕДАКТИРОВАТЬ

Если вы хотите запустить его как веб-сервер, используйте следующий Dockerfile:

FROM php:7.2-apache
COPY . /var/www/html/

построить это:

docker build -t my-php-app .

и запустить его:

docker run -p 8080:80 -d my-php-app

тогда ваш PHP-скрипт будет работать на 8080.