repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

Eric Bower  ·  2025-07-07

Dockerfile.standalone

 1FROM --platform=$BUILDPLATFORM golang:1.24 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 --mount=type=cache,target=/go/pkg/,rw \
12  --mount=type=cache,target=/root/.cache/,rw \
13  go mod download
14
15FROM builder-deps AS builder
16
17COPY . .
18
19ARG TARGETOS
20ARG TARGETARCH
21
22ENV CGO_ENABLED=0
23ENV LDFLAGS="-s -w"
24
25ENV GOOS=${TARGETOS} GOARCH=${TARGETARCH}
26
27RUN --mount=type=cache,target=/go/pkg/,rw \
28  --mount=type=cache,target=/root/.cache/,rw \
29  go build -ldflags "$LDFLAGS" -o /go/bin/pgs ./cmd/pgs/standalone
30
31FROM scratch AS release
32
33ENV TERM="xterm-256color"
34
35WORKDIR /app
36
37COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
38COPY --from=builder /go/bin/pgs ./pgs
39COPY --from=builder /app/pkg/apps/pgs/html ./pkg/apps/pgs/html
40COPY --from=builder /app/pkg/apps/pgs/public ./pkg/apps/pgs/public
41
42ENTRYPOINT ["/app/pgs"]