repos / git-pr

a self-hosted git collaboration server
git clone https://github.com/picosh/git-pr.git

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"]