Как создать docker-окружение с nginx + php 7.4 + composer?

Пользователь

от rachel , в категории: Другие , 6 месяцев назад

Как создать docker-окружение с nginx + php 7.4 + composer?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от clement.erdman , 6 месяцев назад

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