@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.