Контейнер NGINX + PHP 7.2 (без MySQL)
Go to file
2023-11-02 12:41:30 +03:00
docker-compose.yaml Initial Release 2023-11-02 12:39:54 +03:00
Dockerfile Initial Release 2023-11-02 12:39:54 +03:00
LICENSE Initial commit 2023-10-31 21:10:48 +00:00
nginx.cfg Initial Release 2023-11-02 12:39:54 +03:00
README.md Upd Readme.md 2023-11-02 12:41:30 +03:00

docker-image-nginx

Простой контейнер, позволяющий развернуть сервис с php7.4 без mysql на базе образа Debian 11

Подготовка на примере Debian

Устанавливаем необходимые пакеты

sudo apt update
sudo apt install docker-compose docker.io git

Клонируем репозиторий

git clone https://gitea.mayex.net/mayekkuzu/docker-image-nginx.git
cd docker-image-nginx

Подготовка образа

Для начала образ нужно собрать. Опционально можете добавить требуемые модули php7.4 в блоке установки пакетов в Dockerfile, например php7.4-zip:

...
# Устанавливаем пакеты, выключаем режим демона в конфигурационном файле и создаем папку /run/php для работы php-fpm
RUN apt update -y
RUN apt install -y nginx php7.4 php7.4-fpm php7.4-zip
...

Далее собираем образ, обозначаем имя образа, например mkz/nginx-php7

docker build -t mkz/nginx-php7:latest .

Проверяем что наш образ появился в списке

mayekkuzu@microsrv:~/projects/nginx-docker$ docker images
REPOSITORY                 TAG        IMAGE ID       CREATED          SIZE
mkz/nginx-php7             latest     64e6150d7bbd   55 minutes ago   288MB

Можно запускать контейнер. Например, файлы храним в папке /mnt/nginxsite. Поскольку 80 порт уже занят, назначаем порт 8081. Чтобы проверить занятые порты, используйте команду ss -tulpn

docker run --name test_server -d -p 8081:80 -v /mnt/nginxsite:/var/www/html/ mkz/nginx-php7:latest

Проверяем запустился ли контейнер

mayekkuzu@microsrv:~/projects/nginx-docker$ docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS          PORTS                                                                                  NAMES
5e6b982dd7c4   mkz/nginx-php7:latest             "/bin/sh -c 'php-fpm…"   12 seconds ago   Up 11 seconds   0.0.0.0:8081->80/tcp, :::8081->80/tcp                                                  test_server

Создадим в папке /mnt/nginxsite фаил index.html и test.php для проверки работы PHP

echo 'Hello World!' > /mnt/nginxsite/index.html
tee -a /mnt/nginxsite/test.php <<EOF

<?php
phpinfo();
?>
EOF

Проверяем ответ сервера

mayekkuzu@microsrv:~/projects/nginx-docker$ wget -qO- 'http://192.168.111.100:8081/test.php' |
  perl -l -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si'
PHP 7.4.33 - phpinfo()

mayekkuzu@microsrv:~/projects/nginx-docker$ curl 192.168.111.100:8081
Hello World!

Запуск контейнера на примере docker-compose

В файле docker-compose.yaml требуется указать собранный образ, порт и рабочую папку

version: '3.8'
services:
  nginx-php7:
    image: mkz/nginx-php7:latest
    volumes:
      - ./path-to-site/:/var/www/html
    ports:
      - "8081:80"
    restart: unless-stopped

Запуск командой docker-compose up -d