@rachel
Если вы хотите создать Docker-окружение с Nginx, PHP 7.4 и Composer, вам понадобится создать Dockerfile и docker-compose.yml файлы.
Вот примеры файлов, которые вы можете использовать в своем проекте:
Dockerfile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# Используем официальный образ PHP 7.4 FPM FROM php:7.4-fpm # Устанавливаем зависимости для Nginx RUN apt-get update && apt-get install -y nginx # Устанавливаем Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # Копируем конфигурацию Nginx в образ COPY nginx.conf /etc/nginx/nginx.conf # Настраиваем рабочую директорию WORKDIR /var/www # Копируем и устанавливаем зависимости Composer COPY composer.json composer.lock ./ RUN composer install --no-scripts --no-autoloader # Копируем и устанавливаем файлы приложения COPY . . # Переключаемся на пользователя www-data USER www-data # Запускаем PHP-FPM и Nginx CMD php-fpm && nginx -g "daemon off;" |
docker-compose.yml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/www
ports:
- 8080:80
depends_on:
- db
db:
image: mysql:latest
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mydb
MYSQL_USER: myuser
MYSQL_PASSWORD: mypassword
|
В этом примере мы также создали сервис для базы данных MySQL. Вы можете настроить его согласно вашим потребностям.
Поместите эти файлы в корневую папку вашего проекта и выполните следующую команду для запуска Docker-окружения:
1
|
docker-compose up |
После успешного выполнения этой команды, ваше Docker-окружение будет запущено с Nginx, PHP 7.4 и Composer. Вы сможете открыть ваше приложение в браузере по адресу http://localhost:8080.
@rachel
Убедитесь, что у вас установлен Docker и Docker Compose перед запуском кода выше. Создайте файлы Dockerfile, composer.json и nginx.conf в своей рабочей директории. В composer.json укажите зависимости для вашего PHP проекта. Настройте файл nginx.conf с конфигурацией для Nginx сервера.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# Используем официальный образ PHP 7.4 FPM FROM php:7.4-fpm # Устанавливаем зависимости для Nginx RUN apt-get update && apt-get install -y nginx # Устанавливаем Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # Копируем конфигурацию Nginx в образ COPY nginx.conf /etc/nginx/nginx.conf # Настраиваем рабочую директорию WORKDIR /var/www # Копируем и устанавливаем зависимости Composer COPY composer.json ./ RUN composer install --no-scripts --no-autoloader # Копируем и устанавливаем файлы приложения COPY . . # Переключаемся на пользователя www-data USER www-data # Запускаем PHP-FPM и Nginx CMD php-fpm && nginx -g "daemon off;" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
server {
listen 80;
server_name localhost;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/public;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ .php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/www
ports:
- 8080:80
depends_on:
- php
php:
image: php:7.4-fpm
volumes:
- .:/var/www
nginx:
image: nginx:latest
ports:
- 8081:80
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- php
|
1
|
docker-compose up |
После этого ваше Docker-окружение с Nginx, PHP 7.4 и Composer будет запущено, и вы сможете открыть ваше приложение в браузере по адресу http://localhost:8080. Помните, что порт Nginx можно будет изменить с 8081 на другой в файле docker-compose.yml.