2024-11-04 16:45:27 +02:00
|
|
|
FROM php:8.3-fpm
|
|
|
|
|
|
|
|
# build arguments
|
|
|
|
ARG APP_URL http://localhost
|
|
|
|
|
|
|
|
# Update to Debian Trixie
|
|
|
|
RUN cat <<EOF >> /etc/apt/sources.list
|
|
|
|
deb http://deb.debian.org/debian trixie main contrib non-free
|
|
|
|
deb http://deb.debian.org/debian trixie-updates main contrib non-free
|
|
|
|
deb http://security.debian.org/debian-security trixie-security main contrib non-free
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Install system dependencies
|
|
|
|
RUN apt-get update && \
|
|
|
|
apt-get upgrade -y
|
|
|
|
|
|
|
|
# Install apps
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
nginx \
|
|
|
|
rsyslog \
|
|
|
|
supervisor \
|
|
|
|
curl \
|
|
|
|
wget \
|
|
|
|
npm \
|
|
|
|
nano \
|
|
|
|
cmake \
|
|
|
|
gettext \
|
|
|
|
unzip
|
|
|
|
|
|
|
|
# Install PHP dependencies
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
libzip-dev \
|
|
|
|
libfreetype6=2.12.1+dfsg-5+deb12u3 \
|
|
|
|
libfreetype-dev=2.12.1+dfsg-5+deb12u3 \
|
|
|
|
libpng-dev \
|
|
|
|
libjpeg62-turbo-dev \
|
|
|
|
libwebp-dev \
|
|
|
|
libmcrypt-dev \
|
|
|
|
libbz2-dev \
|
|
|
|
libcurl4-openssl-dev \
|
|
|
|
libtidy-dev \
|
|
|
|
libxslt-dev \
|
|
|
|
libonig-dev \
|
|
|
|
libc-client-dev \
|
|
|
|
libpq-dev \
|
|
|
|
libkrb5-dev \
|
|
|
|
libsqlite3-dev \
|
|
|
|
freetds-dev \
|
|
|
|
freetds-bin
|
|
|
|
|
|
|
|
# Cleanup APT
|
|
|
|
RUN rm -rf \
|
|
|
|
/var/lib/apt/lists/* \
|
|
|
|
/usr/share/man/* \
|
|
|
|
/usr/share/doc/* \
|
|
|
|
/etc/nginx/sites-enabled
|
|
|
|
|
|
|
|
# Install PHP extensions
|
|
|
|
RUN docker-php-ext-install \
|
|
|
|
mbstring \
|
|
|
|
xml \
|
|
|
|
dom \
|
|
|
|
zip \
|
|
|
|
intl \
|
|
|
|
gd \
|
|
|
|
curl \
|
|
|
|
calendar \
|
|
|
|
pdo_sqlite \
|
|
|
|
bcmath
|
|
|
|
|
|
|
|
# Install Node.js
|
|
|
|
RUN npm install -g n && n 18
|
|
|
|
|
|
|
|
# Apply configs
|
|
|
|
COPY ./docker/conf/* /
|
|
|
|
|
|
|
|
# Configure project
|
|
|
|
WORKDIR /tmp
|
|
|
|
|
|
|
|
# Install project
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
RUN npm install \
|
|
|
|
&& npm run build \
|
|
|
|
&& mv /tmp/dist/* /tmp/api /var/www/html
|
|
|
|
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
|
|
|
|
RUN cp config.js.ci config.js \
|
|
|
|
&& sed -i "s/{APP_URL}/$APP_URL/g" config.js \
|
|
|
|
&& chown www-data:www-data . -R
|
|
|
|
|
|
|
|
COPY ./entrypoint.sh /
|
|
|
|
|
|
|
|
CMD ["/bin/bash", "/entrypoint.sh"]
|