@ -1,7 +1,7 @@
# syntax = docker/dockerfile:latest
# syntax = docker/dockerfile:latest
# Install dependencies only when needed
# Install dependencies only when needed
FROM node:current-alpine AS deps
FROM ghcr.io/linuxserver/baseimage-alpine:3.15 AS deps
WORKDIR /app
WORKDIR /app
@ -9,9 +9,9 @@ COPY --link package.json pnpm-lock.yaml* ./
RUN <<EOF
RUN <<EOF
set -xe
set -xe
apk add libc6-compat tzdata
apk add nodejs npm libc6-compat tzdata
apk add --virtual .gyp python3 make g++
apk add --virtual .gyp python3 make g++
yarn global add pnpm
npm install -g pnpm
EOF
EOF
RUN --mount= type = cache,id= pnpm-store,target= /root/.local/share/pnpm/store pnpm fetch | grep -v "cross-device link not permitted\|Falling back to copying packages from store"
RUN --mount= type = cache,id= pnpm-store,target= /root/.local/share/pnpm/store pnpm fetch | grep -v "cross-device link not permitted\|Falling back to copying packages from store"
@ -27,7 +27,7 @@ COPY . .
RUN <<EOF
RUN <<EOF
set -xe
set -xe
yar n next telemetry disable
npm ru n telemetry
mkdir config && echo '-' > config/settings.yaml
mkdir config && echo '-' > config/settings.yaml
npm run build
npm run build
EOF
EOF
@ -42,11 +42,6 @@ LABEL org.opencontainers.image.source='https://github.com/benphelps/homepage'
LABEL org.opencontainers.image.licenses= 'Apache-2.0'
LABEL org.opencontainers.image.licenses= 'Apache-2.0'
ENV NODE_ENV production
ENV NODE_ENV production
ENV PUID 0
ENV PGID 0
ENV TZ Europe/London
USER $PUID:$PGID
WORKDIR /app
WORKDIR /app
# Copy files from context (this allows the files to copy before the builder stage is done).
# Copy files from context (this allows the files to copy before the builder stage is done).
@ -63,4 +58,5 @@ EXPOSE $PORT
HEALTHCHECK --interval=10s --timeout=3s --start-period= 20s \
HEALTHCHECK --interval=10s --timeout=3s --start-period= 20s \
CMD wget --no-verbose --tries= 1 --spider --no-check-certificate http://localhost:$PORT /api/healthcheck || exit 1
CMD wget --no-verbose --tries= 1 --spider --no-check-certificate http://localhost:$PORT /api/healthcheck || exit 1
USER $PUID:$PGID
CMD [ "node" , "server.js" ]
CMD [ "node" , "server.js" ]