Какой опыт работы с Docker · PHP Backend — JobPilot

Какой опыт работы с Docker

PHP Backend · 25%
Вопрос 16 / #
Пример ответа

1) Короткий ответ
Использую Docker для контейнеризации приложений, создания единой среды разработки и упрощения деплоя.

2) Ключевые навыки (список)

  • Создание образов: Написание Dockerfile для PHP-FPM, Nginx, MySQL приложений

  • Orchestration: Работа с docker-compose для многоконтейнерных сред

  • Оптимизация: Многоступенчатые сборки, уменьшение размера образов

  • Базы данных: Настройка MySQL/Redis в контейнерах, проброс портов

  • Веб-серверы: Конфигурирование Nginx для работы с PHP-FPM

5) Пример Dockerfile для PHP

dockerfile

Copy

Download

# Многоступенчатая сборка
FROM composer:2 as vendor
COPY composer.json composer.lock /app/
RUN composer install --no-dev --optimize-autoloader

FROM php:8.2-fpm-alpine
WORKDIR /var/www

# Установка расширений PHP
RUN docker-php-ext-install pdo pdo_mysql

# Копирование кода и зависимостей
COPY --from=vendor /app/vendor /var/www/vendor
COPY . /var/www

# Оптимизация прав
RUN chown -R www-data:www-data /var/www

Пример docker-compose.yml

yaml

Copy

Download

version: '3.8'
services:
  app:
    build: .
    volumes:
      - .:/var/www
    depends_on:
      - db
      - redis

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - .:/var/www
      - ./nginx.conf:/etc/nginx/conf.d/default.conf

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: app

  redis:
    image: redis:alpine

6) Follow-up вопросы

  • Как уменьшить размер PHP-образа?Alpine, многоступенчатая сборка.

  • Как организовать общие тома?Docker volumes, bind mounts.

7) Практический совет

  1. Создайте docker-compose среду для своего проекта с PHP-FPM, Nginx и MySQL, убедившись что hot-reload работает для кода.

  2. Оптимизируйте свой Dockerfile: перейдите на Alpine-образ, используйте многоступенчатую сборку для уменьшения итогового размера.

PHP Backend
Junior
25%
Навигация
Что такое интерфейсы
Следующий: С какими версиями PHP работал
Предыдущий: Что такое интерфейсы

Мы используем cookie для улучшения сайта. Продолжая пользоваться сайтом, вы соглашаетесь с политикой cookie и политикой конфиденциальности.