Как запустить Docker контейнер с сайтом и php? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть целевая страница и один PHP файл для отправки писем (форма обратной связи). Я хочу проверить эту форму, используя Docker.

Я написал этот Dockerfile:

FROM php:7.4-cli
COPY . /usr/src/app
CMD [ "php", "/mail/contact_me.php"]

Но он не работает для меня.

У меня есть каталог mail с файлом PHP в root проекта, но я все еще не уверен, правильно ли указан файл Docker:

  • Достаточно ли наследовать FROM php:7.4-cli или мне нужно добавить nginx сервер для запуска образа?
  • Что именно делает строка COPY . /usr/src/app? Это правильно?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2020

A Dockerfile используется, когда вы хотите создать собственное изображение.

FROM php:7.4-cli указывает базовое изображение , которое вы хотите настроить.
COPY . /usr/src/app cop ie хост текущий каталог . в контейнере /usr/src/app.
CMD [ "php", "/mail/contact_me.php"] указывает, какую команду запустить в контейнере.

В В вашем случае я не думаю, что пользовательское изображение требуется.

Поскольку вам нужен веб-сервер с PHP, вы можете использовать образ php:7.4.3-apache, который поставляется с предварительно установленным PHP7 и Apache веб-сервером. Все, что вам нужно сделать, это скопировать ваше приложение в ваш контейнер или использовать том. Том очень хорош, потому что он фактически монтирует каталог вашего хоста в ваш контейнер, позволяя вам редактировать ваше приложение с хоста и видеть изменения в режиме реального времени.

Для этого вы можете использовать файл docker-compose.yml.

version: "2"
services:
  webserver:
    image: php:7.4.3-apache
    ports:
      - "8181:80"
    volumes:
      - ./app:/var/www/html

Если ваше приложение находится в папке app на вашем хост-компьютере, эта папка будет смонтирована в /var/html/html вашего контейнера. Здесь 8181:80 перенаправит порт 8181 на вашем хост-компьютере на порт 80 вашего контейнера, который является http-портом.

Используйте эту команду для запуска вашего контейнера:

docker-compose up -d

Вы должны увидеть свою целевую страницу на http://localhost:8181

0 голосов
/ 25 февраля 2020

Прочтите о Dockerfile (официальная документация): Рекомендации по написанию Dockerfile

А может быть, вам понадобится еще один Docker образ: Docker HUB ~> bitnami / php -fpme

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...