51 lines
1.1 KiB
Docker
51 lines
1.1 KiB
Docker
# stage 0: set base image w/common customizations
|
|
FROM docker.io/library/node:lts-alpine AS base
|
|
|
|
# Prepare work directory
|
|
WORKDIR /voyager
|
|
|
|
ENV PNPM_HOME="/pnpm"
|
|
ENV PATH="$PNPM_HOME:$PATH"
|
|
ENV BUILD_FOSS_ONLY=true
|
|
|
|
# enable corepack & set network-timeout
|
|
RUN corepack enable &&\
|
|
pnpm config set network-timeout 300000
|
|
|
|
|
|
# stage 1: build
|
|
FROM base AS builder
|
|
|
|
# Prepare deps
|
|
RUN apk add --no-cache git
|
|
|
|
# Prepare build deps ( ignore postinstall scripts for now )
|
|
COPY package.json pnpm-lock.yaml ./
|
|
COPY patches ./patches
|
|
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile --ignore-scripts
|
|
|
|
# Copy all source files
|
|
COPY build.sh disable_in_app_purchases.sh index.html vite.config.ts manifest.json tsconfig.json ./
|
|
COPY public ./public
|
|
COPY src ./src
|
|
|
|
# Build
|
|
RUN pnpm build
|
|
|
|
|
|
# stage 2: runtime
|
|
FROM docker.io/library/nginx AS runner
|
|
|
|
ARG UID=911 GID=911
|
|
|
|
COPY generate_config.sh /docker-entrypoint.d/generate_config.sh
|
|
|
|
COPY nginx.conf.template /etc/nginx/templates/default.conf.template
|
|
|
|
COPY --from=builder /voyager/dist /var/www
|
|
|
|
ENV NGINX_PORT=5314
|
|
|
|
EXPOSE 5314/tcp
|