- Dockerfile с PHP 8.3 и необходимыми расширениями - Конфигурация БД через переменные окружения: DB_HOST, DB_PORT, DB_CHARSET - .dockerignore для оптимизации сборки Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
45 lines
1.1 KiB
Docker
45 lines
1.1 KiB
Docker
FROM alpine:3.19
|
|
|
|
# Установка PHP и необходимых расширений
|
|
RUN apk add --no-cache \
|
|
php83 \
|
|
php83-pdo \
|
|
php83-pdo_mysql \
|
|
php83-session \
|
|
php83-json \
|
|
php83-mbstring \
|
|
php83-openssl \
|
|
php83-phar \
|
|
php83-zlib \
|
|
php83-dom \
|
|
php83-xml \
|
|
php83-tokenizer \
|
|
curl
|
|
|
|
# Создаём симлинк php -> php83
|
|
RUN ln -sf /usr/bin/php83 /usr/bin/php
|
|
|
|
# Установка Composer
|
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
|
|
|
WORKDIR /app
|
|
|
|
# Копируем composer файлы и устанавливаем зависимости
|
|
COPY composer.json ./
|
|
RUN composer install --no-dev --optimize-autoloader --no-scripts
|
|
|
|
# Копируем исходный код
|
|
COPY src/ ./src/
|
|
COPY public/ ./public/
|
|
|
|
# Переменные окружения по умолчанию
|
|
ENV DB_HOST=localhost
|
|
ENV DB_PORT=3306
|
|
ENV DB_CHARSET=utf8mb4
|
|
ENV PHP_ERROR_DISPLAY=false
|
|
|
|
EXPOSE 8080
|
|
|
|
# Запуск встроенного PHP сервера
|
|
CMD ["php", "-S", "0.0.0.0:8080", "-t", "public"]
|