drop/server/Dockerfile

48 lines
1.1 KiB
Text
Raw Normal View History

# syntax=docker/dockerfile:1
2025-05-10 17:27:39 -04:00
# Unified deps builder
FROM node:lts-alpine AS deps
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --network-timeout 1000000 --ignore-scripts
2024-11-04 20:50:35 +11:00
2025-05-10 17:27:39 -04:00
# Build for app
FROM node:lts-alpine AS build-system
2025-05-08 21:30:52 +10:00
# setup workdir - has to be the same filepath as app because fuckin' Prisma
WORKDIR /app
2024-11-04 20:50:35 +11:00
2025-05-10 17:27:39 -04:00
ENV NODE_ENV=production
ENV NUXT_TELEMETRY_DISABLED=1
# add git so drop can determine its git ref at build
2025-05-29 14:18:19 -04:00
RUN apk add --no-cache git
2025-05-10 17:27:39 -04:00
# copy deps and rest of project files
COPY --from=deps /app/node_modules ./node_modules
2024-11-04 20:50:35 +11:00
COPY . .
ARG BUILD_DROP_VERSION="v0.0.0-unknown.1"
2025-05-10 17:27:39 -04:00
# build
RUN yarn postinstall
RUN yarn build
2024-11-04 20:50:35 +11:00
2025-05-10 17:27:39 -04:00
# create run environment for Drop
FROM node:lts-alpine AS run-system
2024-11-04 20:50:35 +11:00
WORKDIR /app
2025-05-10 17:27:39 -04:00
ENV NODE_ENV=production
ENV NUXT_TELEMETRY_DISABLED=1
RUN yarn add --network-timeout 1000000 --no-lockfile prisma@6.7.0
COPY --from=build-system /app/package.json ./
2025-05-08 21:30:52 +10:00
COPY --from=build-system /app/.output ./app
COPY --from=build-system /app/prisma ./prisma
COPY --from=build-system /app/build ./startup
2024-11-04 20:50:35 +11:00
2025-05-10 17:27:39 -04:00
ENV LIBRARY="/library"
ENV DATA="/data"
2024-11-04 20:50:35 +11:00
2025-05-10 17:27:39 -04:00
CMD ["sh", "/app/startup/launch.sh"]