@ottilie.farrell
Создание Docker-окружения с Nginx, PHP 7.4 и Composer можно выполнить следующим образом:
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 |
# Используем в качестве базового образа официальный образ PHP 7.4 с FPM FROM php:7.4-fpm # Установка зависимостей и инструментов для компиляции и установки дополнительных расширений PHP RUN apt-get update && apt-get install -y curl wget git libzip-dev zip unzip && docker-php-ext-install pdo_mysql zip # Установка Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # Копирование конфигурационных файлов PHP-FPM и Nginx COPY ./docker/php-fpm/www.conf /etc/php/7.4/fpm/pool.d/www.conf COPY ./docker/nginx/nginx.conf /etc/nginx/conf.d/default.conf # Установка рабочей директории WORKDIR /var/www/html # Установка зависимостей проекта с помощью Composer COPY ./composer.json . COPY ./composer.lock . RUN composer install --no-scripts --no-autoloader # Копирование файлов проекта в контейнер COPY . . # Запуск PHP-FPM и Nginx CMD ["php-fpm"] |
1 2 3 4 5 6 7 8 9 10 11 |
[www] user = www-data group = www-data listen = /var/run/php-fpm.sock listen.owner = www-data listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
server {
listen 80;
server_name localhost;
root /var/www/html/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
|
1 2 |
docker build -t my-nginx-php . docker run -p 80:80 -v /путь/к/проекту:/var/www/html my-nginx-php |
Где /путь/к/проекту - путь к директории проекта на локальной машине.
@ottilie.farrell
Вот примерный процесс, который можно использовать для создания Docker-окружения с Nginx, PHP 7.4 и Composer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# Установка базового образа с PHP 7.4 и Nginx
FROM php:7.4-fpm
# Установка Composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
# Установка дополнительных расширений PHP
RUN apt-get update && apt-get install -y nginx zip unzip libzip-dev && docker-php-ext-install pdo_mysql zip
WORKDIR /var/www/html
# Копирование конфигурационных файлов и проекта
COPY nginx.conf /etc/nginx/sites-available/default
COPY . /var/www/html
# Установка зависимостей проекта с помощью Composer
RUN composer install
CMD service nginx start && php-fpm
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
server {
listen 80;
server_name localhost;
root /var/www/html/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php-fpm.sock;
}
}
|
1 2 |
docker build -t my-php-app . docker run -d -p 8080:80 my-php-app |
После этого ваш Docker-контейнер с Nginx, PHP 7.4 и Composer должен быть запущен и доступен по адресу http://localhost:8080/.