Files
perceptron-viewer/Dockerfile
T
Ninluc 7c223e0ba8
linter / quality (push) Successful in 5m1s
tests / ci (8.3) (push) Successful in 3m47s
Increase max request time
2026-09-19 15:28:52 +02:00

70 lines
1.5 KiB
Docker

# Composer dependencies
FROM composer:2 AS vendor
WORKDIR /usr/app
COPY . .
RUN composer install --no-dev --optimize-autoloader --no-interaction
# Build frontend assets
# Install node and npm
RUN apk add --no-cache nodejs npm
RUN npm install
ARG VITE_REVERB_APP_KEY
ARG VITE_REVERB_HOST
ARG VITE_REVERB_PORT=443
ARG VITE_REVERB_SCHEME=https
ENV VITE_REVERB_APP_KEY=$VITE_REVERB_APP_KEY \
VITE_REVERB_HOST=$VITE_REVERB_HOST \
VITE_REVERB_PORT=$VITE_REVERB_PORT \
VITE_REVERB_SCHEME=$VITE_REVERB_SCHEME
RUN npm run build
# Final PHP image
FROM dunglas/frankenphp:1.12.2-php8.3-alpine AS final
COPY docker/php.ini-production "$PHP_INI_DIR/php.ini"
# Install system dependencies
RUN apk add --no-cache \
bash \
libpng-dev \
libjpeg-turbo-dev \
freetype-dev \
oniguruma-dev \
zip \
unzip \
git \
curl \
libpq-dev \
php-pgsql
# Install PHP extensions
RUN docker-php-ext-install pdo pgsql pdo_pgsql mbstring exif pcntl bcmath gd
WORKDIR /app
# Copy app
COPY . .
RUN mv .env.docker .env
# Copy dependencies
COPY --from=vendor /usr/app/vendor ./vendor
# Copy built frontend
COPY --from=vendor /usr/app/public/build ./public/build
# Permissions
#RUN chown -R www-data:www-data /app
#RUN chown www-data:www-data /app/dockerEntryPoint.sh
RUN chmod +x /app/dockerEntryPoint.sh
HEALTHCHECK --interval=30s --timeout=30s --start-period=30s --retries=3 CMD curl -f http://127.0.0.1/up || exit 1
EXPOSE 80
EXPOSE 8080
CMD ["./dockerEntryPoint.sh"]