Files
tsd_test/images/php82/Dockerfile
2026-03-25 13:51:25 +00:00

190 lines
5.7 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FROM composer:latest AS composer
FROM php:8.2-fpm
COPY --from=composer /usr/bin/composer /usr/bin/composer
ARG USER_ID
ARG GROUP_ID
ADD images/php82/php.ini /usr/local/etc/php/php.ini
ADD www/first.loc/api /var/www/first.loc/api
# ============================================
# БЛОК 1: Настройка пользователя и прав
# ============================================
RUN chown -R 1000:1000 /var/www/ && \
usermod -u 1000 www-data && \
groupmod -g 1000 www-data
# ============================================
# БЛОК 2: Базовая система и обновление пакетов
# ============================================
RUN apt-get update -y && \
apt-get -y install \
gcc \
make \
autoconf \
libc-dev \
pkg-config \
libzip-dev \
locales
# ============================================
# БЛОК 3: Основные инструменты и библиотеки
# ============================================
RUN apt-get install -y --no-install-recommends \
git \
libz-dev \
libpq-dev \
libxml2-dev \
libmemcached-dev \
libldap2-dev \
libbz2-dev \
zlib1g-dev \
libicu-dev \
g++ \
libssl-dev \
libssl-doc \
libsasl2-dev \
curl \
libcurl4-openssl-dev
# ============================================
# БЛОК 4: Специализированные библиотеки
# ============================================
RUN apt-get install -y --no-install-recommends \
libgmp-dev \
firebird-dev \
libib-util
# ============================================
# БЛОК 5: Библиотеки для изображений и графики
# ============================================
RUN apt-get install -y --no-install-recommends \
re2c \
libpng++-dev \
libwebp-dev \
libjpeg-dev \
libjpeg62-turbo-dev \
libpng-dev \
libxpm-dev \
libvpx-dev \
libfreetype6-dev
# ============================================
# БЛОК 6: Python и ImageMagick
# ============================================
RUN apt-get install -y --no-install-recommends \
python3 \
python3-pip \
libmagick++-dev \
libmagickwand-dev
# ============================================
# БЛОК 7: Дополнительные утилиты и библиотеки
# ============================================
RUN apt-get install -y --no-install-recommends \
zlib1g-dev \
libgd-dev \
unzip \
libpcre2-dev \
libtidy-dev \
libxslt1-dev \
libmagic-dev \
libexif-dev \
file \
libmhash2 \
libmhash-dev \
libkrb5-dev \
libssh2-1-dev \
poppler-utils \
ghostscript \
libmagickwand-dev \
libsnmp-dev \
libedit-dev \
libreadline-dev \
libsodium-dev \
freetds-bin \
freetds-dev \
freetds-common \
libct4 \
libsybdb5 \
tdsodbc \
librecode-dev \
libpspell-dev \
libonig-dev
# ============================================
# БЛОК 8: Пропускаем IMAP (не нужен для работы)
# ============================================
RUN echo "IMAP extension skipped - continuing with other extensions"
# ============================================
# БЛОК 9: Установка расширений PHP (часть 1)
# ============================================
RUN ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/ && \
docker-php-ext-install pdo_dblib && \
docker-php-ext-install dba && \
docker-php-ext-install curl && \
docker-php-ext-install fileinfo && \
docker-php-ext-install filter && \
docker-php-ext-install exif && \
docker-php-ext-install gettext && \
docker-php-ext-install gmp && \
docker-php-ext-install iconv
# ============================================
# БЛОК 10: Установка расширений PHP (часть 2 - базы данных)
# ============================================
RUN docker-php-ext-install mysqli && \
docker-php-ext-install pdo_mysql && \
docker-php-ext-install pdo_pgsql && \
docker-php-ext-install pgsql && \
docker-php-ext-install session && \
docker-php-ext-install zip && \
docker-php-ext-install xml
# ============================================
# БЛОК 11: Установка GD с конфигурацией
# ============================================
RUN docker-php-ext-configure gd \
--with-jpeg \
--with-xpm \
--with-webp \
--with-freetype && \
docker-php-ext-install -j$(nproc) gd
# ============================================
# БЛОК 12: Установка MongoDB через PECL
# ============================================
RUN pecl install mongodb && \
docker-php-ext-enable mongodb
# ============================================
# БЛОК 13: Настройка локали
# ============================================
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8
# ============================================
# БЛОК 14: Очистка и финальные права
# ============================================
RUN chmod +x /usr/local/bin/* && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# ============================================
# Финальные настройки
# ============================================
ENV LANG='en_US.UTF-8' \
LANGUAGE='en_US:en' \
LC_ALL='en_US.UTF-8'
WORKDIR /var/www
USER 1000:1000
RUN mkdir -p /var/www/first.loc/api/tmp
CMD ["php-fpm"]