jolheiser
·
2025-04-05
Dockerfile
1FROM --platform=$BUILDPLATFORM golang:1.22 as builder-deps
2LABEL maintainer="Pico Maintainers <hello@pico.sh>"
3
4WORKDIR /app
5
6RUN apt-get update
7RUN apt-get install -y git ca-certificates
8
9COPY go.* ./
10
11RUN go mod download
12
13FROM builder-deps as builder-web
14
15COPY . .
16
17ARG TARGETOS
18ARG TARGETARCH
19
20ENV CGO_ENABLED=0
21ENV LDFLAGS="-s -w"
22
23ENV GOOS=${TARGETOS} GOARCH=${TARGETARCH}
24
25RUN go build -ldflags "$LDFLAGS" -o /go/bin/git-web ./cmd/git-web
26
27FROM builder-deps as builder-ssh
28
29COPY . .
30
31ARG TARGETOS
32ARG TARGETARCH
33
34ENV CGO_ENABLED=0
35ENV LDFLAGS="-s -w"
36
37ENV GOOS=${TARGETOS} GOARCH=${TARGETARCH}
38
39RUN go build -ldflags "$LDFLAGS" -o /go/bin/git-ssh ./cmd/git-ssh
40
41FROM scratch as release-web
42
43WORKDIR /app
44
45COPY --from=builder-web /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
46COPY --from=builder-web /go/bin/git-web ./git-web
47
48CMD ["/app/web"]
49
50FROM scratch as release-ssh
51
52WORKDIR /app
53ENV TERM="xterm-256color"
54
55COPY --from=builder-ssh /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
56COPY --from=builder-ssh /go/bin/git-ssh ./git-ssh
57
58CMD ["/app/git-ssh"]