mirror of
https://github.com/immich-app/immich.git
synced 2024-12-28 22:51:59 +00:00
refactor: multistage builds (#955)
This commit is contained in:
parent
739bed737e
commit
2e4c005ad9
3 changed files with 18 additions and 10 deletions
|
@ -7,7 +7,7 @@ services:
|
|||
context: ../server
|
||||
dockerfile: Dockerfile
|
||||
target: builder
|
||||
command: npm ci && npm run test:e2e
|
||||
command: npm run test:e2e
|
||||
expose:
|
||||
- '3000'
|
||||
volumes:
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
# Build stage
|
||||
FROM node:16-bullseye-slim as builder
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
@ -16,9 +15,14 @@ RUN npm rebuild @tensorflow/tfjs-node --build-from-source
|
|||
|
||||
COPY . .
|
||||
|
||||
|
||||
FROM builder as prod
|
||||
|
||||
RUN npm run build
|
||||
|
||||
# Prod stage
|
||||
RUN npm prune --omit=dev
|
||||
|
||||
|
||||
FROM node:16-bullseye-slim
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
@ -29,8 +33,8 @@ RUN apt-get update \
|
|||
&& apt-get install -y ffmpeg \
|
||||
&& rm -rf /var/cache/apt/lists
|
||||
|
||||
COPY --from=builder /usr/src/app/node_modules ./node_modules
|
||||
COPY --from=builder /usr/src/app/dist ./dist
|
||||
COPY --from=prod /usr/src/app/node_modules ./node_modules
|
||||
COPY --from=prod /usr/src/app/dist ./dist
|
||||
|
||||
COPY package.json package-lock.json ./
|
||||
COPY entrypoint.sh ./
|
||||
|
|
|
@ -10,18 +10,22 @@ RUN npm ci
|
|||
|
||||
COPY . .
|
||||
|
||||
RUN npm run build
|
||||
|
||||
# Prod stage
|
||||
FROM builder as prod
|
||||
|
||||
RUN npm run build
|
||||
RUN npm prune --omit=dev
|
||||
|
||||
|
||||
FROM node:16-alpine3.14
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
RUN apk add --no-cache libheif vips ffmpeg
|
||||
|
||||
COPY --from=builder /usr/src/app/node_modules ./node_modules
|
||||
COPY --from=builder /usr/src/app/dist ./dist
|
||||
COPY --from=builder /usr/src/app/bin ./bin
|
||||
COPY --from=prod /usr/src/app/node_modules ./node_modules
|
||||
COPY --from=prod /usr/src/app/dist ./dist
|
||||
COPY --from=prod /usr/src/app/bin ./bin
|
||||
|
||||
COPY LICENSE /licenses/LICENSE.txt
|
||||
COPY LICENSE /LICENSE
|
||||
|
|
Loading…
Reference in a new issue