Add docker deployment
Some checks failed
build docker image / docker-build (push) Has been cancelled
Some checks failed
build docker image / docker-build (push) Has been cancelled
This commit is contained in:
112
Dockerfile
112
Dockerfile
@ -1,29 +1,95 @@
|
||||
FROM debian:bullseye-slim
|
||||
FROM php:8.3-fpm
|
||||
|
||||
ENV DEBIAN_FRONTEND="noninteractive"
|
||||
# build arguments
|
||||
ARG APP_URL http://localhost
|
||||
|
||||
RUN apt-get update && apt-get -y upgrade \
|
||||
&& apt-get -y install \
|
||||
curl nodejs npm \
|
||||
&& npm install -g vue vite n \
|
||||
&& n stable \
|
||||
&& mkdir /app \
|
||||
&& rm -rf /var/lib/apt/lists/* /usr/share/man/* /usr/share/doc/*
|
||||
# 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
|
||||
|
||||
WORKDIR /app
|
||||
# Install system dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get upgrade -y
|
||||
|
||||
COPY ./public public
|
||||
COPY ./src src
|
||||
COPY ./config.prod.js ./config.js
|
||||
COPY ./index.html .
|
||||
COPY ./package.json .
|
||||
COPY ./package-lock.json .
|
||||
COPY ./postcss.config.js .
|
||||
COPY ./tailwind.config.js .
|
||||
COPY ./vite.config.js .
|
||||
# Install apps
|
||||
RUN apt-get install -y --no-install-recommends \
|
||||
nginx \
|
||||
rsyslog \
|
||||
supervisor \
|
||||
curl \
|
||||
wget \
|
||||
npm \
|
||||
nano \
|
||||
cmake \
|
||||
gettext \
|
||||
unzip
|
||||
|
||||
RUN npm install && npm run build
|
||||
# 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
|
||||
|
||||
FROM nginx
|
||||
COPY --from=0 /app/dist /usr/share/nginx/html
|
||||
COPY ./nginx/conf /etc/nginx/conf.d/
|
||||
# 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"]
|
||||
|
Reference in New Issue
Block a user