29 lines
1.6 KiB
Docker
29 lines
1.6 KiB
Docker
FROM golang:1.26.2-alpine@sha256:f85330846cde1e57ca9ec309382da3b8e6ae3ab943d2739500e08c86393a21b1 AS builder
|
|
ARG VERSION=dev
|
|
WORKDIR /src
|
|
COPY go.mod ./
|
|
COPY *.go ./
|
|
COPY web ./web
|
|
RUN go test ./... \
|
|
&& go vet ./... \
|
|
&& mkdir -p /out/download \
|
|
&& CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -trimpath -ldflags="-s -w -X main.version=${VERSION}" -o /out/download/lrc-local-windows-amd64.exe . \
|
|
&& CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w -X main.version=${VERSION}" -o /out/download/lrc-local-linux-amd64 . \
|
|
&& cp /out/download/lrc-local-linux-amd64 /out/lrc-local-server \
|
|
&& CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags="-s -w -X main.version=${VERSION}" -o /out/download/lrc-local-darwin-arm64 . \
|
|
&& CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -trimpath -ldflags="-s -w -X main.version=${VERSION}" -o /out/download/lrc-local-darwin-amd64 . \
|
|
&& cd /out/download \
|
|
&& tar -czf lrc-local-linux-amd64.tar.gz lrc-local-linux-amd64 \
|
|
&& tar -czf lrc-local-darwin-arm64.tar.gz lrc-local-darwin-arm64 \
|
|
&& tar -czf lrc-local-darwin-amd64.tar.gz lrc-local-darwin-amd64 \
|
|
&& rm lrc-local-linux-amd64 lrc-local-darwin-arm64 lrc-local-darwin-amd64 \
|
|
&& sha256sum lrc-local-* > SHA256SUMS
|
|
|
|
FROM scratch
|
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
|
COPY --from=builder /out/lrc-local-server /lrc-local
|
|
COPY --from=builder /out/download /srv/download
|
|
USER 65534:65534
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["/lrc-local", "--public", "--listen", "0.0.0.0:8080", "--origin", "https://lrc.flechazo.xin", "--downloads", "/srv/download"]
|