Files
htwkalender/frontend/Dockerfile
2025-04-07 19:39:54 +02:00

51 lines
1.5 KiB
Docker

#Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format.
#Copyright (C) 2024 HTWKalender support@htwkalender.de
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU Affero General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU Affero General Public License for more details.
#You should have received a copy of the GNU Affero General Public License
#along with this program. If not, see <https://www.gnu.org/licenses/>.
# build stage
FROM docker.io/node:lts-alpine AS build
ARG COMMIT_HASH
ENV COMMIT_HASH=$COMMIT_HASH
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY / ./
RUN echo "COMMIT_HASH=$COMMIT_HASH" >> .env.commit
RUN npm run build
# development stage
FROM docker.io/node:lts-alpine AS dev
ARG COMMIT_HASH
ENV COMMIT_HASH=$COMMIT_HASH
WORKDIR /app
COPY package*.json ./
RUN echo "COMMIT_HASH=$COMMIT_HASH" >> .env.commit
RUN npm install
COPY . ./
# production stage
# https://hub.docker.com/r/bitnami/nginx -> always run as non-root user
FROM docker.io/bitnami/nginx:1.27 AS prod
# copy build files from build container
COPY --from=build /app/dist /app
COPY ./nginx.conf /opt/bitnami/nginx/conf/nginx.conf
EXPOSE 8000