Files
onboard/Dockerfile
brusnitsyn 2805e5e4bc * исправление подсчета операций пациентов
* поправил поле выбора даты
* добавил индикатор в контроле
* окно выбора пользователя для сводной
* привязка окна для ввода причины контроля
* добавил привязку историй пациентов для просмотра статистики по дням
* поправил фиксацию фио ответственного, убрал при диапазоне
* отключение ролей адм и зав от реплики
2026-01-30 17:26:16 +09:00

213 lines
6.0 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.

# Этап 1: PHP зависимости
FROM dh-mirror.gitverse.ru/php:8.3-fpm AS phpbuild
# Установка системных зависимостей В ОДНОМ RUN
RUN apt-get update && apt-get install -y \
git \
curl \
wget \
unzip \
libzip-dev \
libxml2-dev \
libicu-dev \
libonig-dev \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
libwebp-dev \
libpq-dev \
libxslt1-dev \
libexif-dev \
libffi-dev \
pkg-config \
libssl-dev \
# Устанавливаем PHP расширения
&& docker-php-ext-configure gd \
--with-freetype \
--with-jpeg \
--with-webp \
&& docker-php-ext-install -j$(nproc) \
bcmath \
intl \
mbstring \
zip \
opcache \
pdo \
pdo_mysql \
pdo_pgsql \
gd \
exif \
sockets \
xsl \
ffi \
pcntl \
# Устанавливаем Redis
&& pecl install redis \
&& docker-php-ext-enable redis \
# Сразу чистим
&& rm -rf /usr/src/* \
&& rm -rf /tmp/* \
&& rm -rf /var/tmp/* \
&& find / -type d -name "tests" -exec rm -rf {} + 2>/dev/null || true \
# Чистим apt
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/*
# Настройка opcache для production
RUN echo "opcache.enable=1" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.memory_consumption=256" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.interned_strings_buffer=32" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.max_accelerated_files=32531" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.validate_timestamps=0" >> /usr/local/etc/php/conf.d/opcache.ini
# Установка Composer
COPY --from=dh-mirror.gitverse.ru/composer:2.7 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www
# Копирование файлов для установки зависимостей
COPY composer.json composer.lock ./
# Установка PHP зависимостей
RUN composer install \
--no-progress \
--no-scripts \
--prefer-dist \
--optimize-autoloader \
--apcu-autoloader
# Копируем исходный код
COPY . .
# Установка прав
RUN chown -R www-data:www-data /var/www && \
chmod -R 775 /var/www/storage /var/www/bootstrap/cache
# Этап 2: Сборка фронтенда (Inertia + Vue 3)
FROM dh-mirror.gitverse.ru/node:20 AS jsbuild
# Установка дополнительных зависимостей для сборки
RUN apt-get update && apt-get install -y \
python3 \
make \
g++ \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /var/www
# Копируем зависимости Node.js
COPY package.json package-lock.json* ./
# Установка зависимостей Node.js
RUN npm ci \
--no-audit \
--progress=false
# Копируем файлы для сборки фронтенда
COPY vite.config.js ./
COPY resources/js ./resources/js/
COPY resources/css ./resources/css/
# Сборка ассетов Vite
RUN npm run build
# Этап 3: Финальный образ
FROM dh-mirror.gitverse.ru/php:8.3-fpm
RUN apt-get update && apt-get install -y \
libxml2 \
libonig5 \
libpng16-16 \
libjpeg62-turbo \
libfreetype6 \
libwebp7 \
libpq5 \
libxslt1.1 \
libexif12 \
libffi8 \
supervisor \
nginx \
cron \
&& rm -rf /var/lib/apt/lists/*
# Установка системных зависимостей
RUN apt-get update && apt-get install -y \
git \
curl \
wget \
unzip \
libzip-dev \
libxml2-dev \
libicu-dev \
libonig-dev \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
libwebp-dev \
libpq-dev \
libxslt1-dev \
libexif-dev \
libffi-dev \
pkg-config \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
# Установка PHP расширений
RUN docker-php-ext-configure gd \
--with-freetype \
--with-jpeg \
--with-webp \
&& docker-php-ext-install -j$(nproc) \
bcmath \
intl \
mbstring \
zip \
opcache \
pdo \
pdo_mysql \
pdo_pgsql \
gd \
exif \
sockets \
xsl \
ffi \
pcntl
# Установка Redis расширения
RUN pecl install redis && docker-php-ext-enable redis
# Настройка opcache для production
RUN echo "opcache.enable=1" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.memory_consumption=256" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.interned_strings_buffer=32" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.max_accelerated_files=32531" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.validate_timestamps=0" >> /usr/local/etc/php/conf.d/opcache.ini
# Копируем PHP расширения из первого этапа
#COPY --from=phpbuild /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
#COPY --from=phpbuild /usr/local/lib/php/extensions/no-debug-non-zts-20230831/ /usr/local/lib/php/extensions/no-debug-non-zts-20230831/
#COPY --from=phpbuild /usr/local/bin/ /usr/local/bin/
# Копируем конфигурации
COPY docker/nginx.conf /etc/nginx/nginx.conf
COPY docker/app.conf /etc/nginx/conf.d/default.conf
COPY docker/supervisord.conf /etc/supervisor/supervisord.conf
WORKDIR /var/www
# Копируем приложение
COPY --chown=www-data:www-data --from=phpbuild /var/www .
COPY --chown=www-data:www-data --from=jsbuild /var/www/public/build ./public/build
COPY --chown=www-data:www-data --from=jsbuild /var/www/node_modules ./node_modules
# Настройка прав и оптимизация Laravel
RUN mkdir -p /var/log/supervisor && \
chown -R www-data:www-data /var/www /var/log/supervisor && \
chmod -R 775 /var/www/storage /var/www/bootstrap/cache
# Создание ссылки на Storage
RUN php artisan storage:link
EXPOSE 80
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]