mirror of https://github.com/cloudreve/Cloudreve
Make dockerfile multi-stage
With this it's possible to build the entire Cloudreve suite with a single image. This changes the assets version to use .Tag instead of .Version because without it we get a mismatch between the frontend and the backend.pull/2481/head
parent
a517f41ab1
commit
3759de99d9
|
@ -4,7 +4,7 @@ before:
|
|||
hooks:
|
||||
- go mod tidy
|
||||
- chmod +x ./.build/build-assets.sh
|
||||
- ./.build/build-assets.sh {{.Version}}
|
||||
- ./.build/build-assets.sh {{.Tag}}
|
||||
|
||||
builds:
|
||||
- env:
|
||||
|
|
18
Dockerfile
18
Dockerfile
|
@ -1,3 +1,19 @@
|
|||
# Build stage
|
||||
|
||||
FROM ghcr.io/goreleaser/goreleaser:v2.10.2 AS builder
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
# Install goreleaser
|
||||
RUN apk add --no-cache bash curl git npm nodejs tar zip
|
||||
RUN npm install -g yarn
|
||||
|
||||
# Perform the build
|
||||
COPY . .
|
||||
|
||||
RUN goreleaser build --single-target --snapshot
|
||||
|
||||
# Runtime stage
|
||||
FROM alpine:latest
|
||||
|
||||
WORKDIR /cloudreve
|
||||
|
@ -16,7 +32,7 @@ ENV CR_ENABLE_ARIA2=1 \
|
|||
CR_SETTING_DEFAULT_media_meta_ffprobe=1
|
||||
|
||||
COPY .build/aria2.supervisor.conf .build/entrypoint.sh ./
|
||||
COPY cloudreve ./cloudreve
|
||||
COPY --from=builder /src/dist/*/cloudreve ./cloudreve
|
||||
|
||||
RUN chmod +x ./cloudreve \
|
||||
&& chmod +x ./entrypoint.sh
|
||||
|
|
Loading…
Reference in New Issue