|
1 | | -FROM golang:1.23.4-alpine3.19 AS builder |
| 1 | +# syntax=docker/dockerfile:1.7 |
| 2 | +FROM golang:1.26.2-alpine AS builder |
2 | 3 |
|
3 | 4 | RUN apk add --no-cache ca-certificates |
4 | 5 |
|
5 | 6 | ENV CGO_ENABLED=0 |
6 | | -WORKDIR /go/src/github.com/sourcegraph/zoekt |
| 7 | +WORKDIR /src |
7 | 8 |
|
8 | | -# Cache dependencies |
| 9 | +# Cache dependency resolution separately from source changes. |
9 | 10 | COPY go.mod go.sum ./ |
10 | | -RUN go mod download |
| 11 | +RUN --mount=type=cache,target=/go/pkg/mod \ |
| 12 | + go mod download |
| 13 | + |
| 14 | +COPY . . |
| 15 | +ARG VERSION=dev |
| 16 | +RUN --mount=type=cache,target=/go/pkg/mod \ |
| 17 | + --mount=type=cache,target=/root/.cache/go-build \ |
| 18 | + mkdir -p /out && \ |
| 19 | + go build \ |
| 20 | + -trimpath \ |
| 21 | + -ldflags "-X github.com/sourcegraph/zoekt.Version=$VERSION" \ |
| 22 | + -o /out/ \ |
| 23 | + ./cmd/... |
| 24 | + |
| 25 | +FROM alpine:3 |
11 | 26 |
|
12 | | -COPY . ./ |
13 | | -ARG VERSION |
14 | | -RUN go install -ldflags "-X github.com/sourcegraph/zoekt.Version=$VERSION" ./cmd/... |
| 27 | +RUN apk add --no-cache git ca-certificates bind-tools tini jansson wget |
15 | 28 |
|
16 | | -FROM alpine:3.19 AS zoekt |
| 29 | +COPY --chmod=755 install-ctags-alpine.sh /usr/local/bin/install-ctags-alpine.sh |
| 30 | +RUN /usr/local/bin/install-ctags-alpine.sh && rm /usr/local/bin/install-ctags-alpine.sh |
17 | 31 |
|
18 | | -RUN apk add --no-cache git ca-certificates bind-tools tini jansson wget |
| 32 | +RUN addgroup -S zoekt && \ |
| 33 | + adduser -S -G zoekt -h /home/zoekt zoekt && \ |
| 34 | + mkdir -p /data/index /home/zoekt && \ |
| 35 | + chown -R zoekt:zoekt /data /home/zoekt |
| 36 | + |
| 37 | +COPY --from=builder /out/ /usr/local/bin/ |
19 | 38 |
|
20 | | -COPY install-ctags-alpine.sh . |
21 | | -RUN ./install-ctags-alpine.sh && rm install-ctags-alpine.sh |
| 39 | +USER zoekt |
| 40 | +WORKDIR /home/zoekt |
22 | 41 |
|
23 | | -COPY --from=builder /go/bin/* /usr/local/bin/ |
| 42 | +ENV DATA_DIR=/data/index |
24 | 43 |
|
25 | 44 | ENTRYPOINT ["/sbin/tini", "--"] |
| 45 | +CMD ["zoekt-webserver", "-index", "/data/index", "-pprof", "-rpc"] |
0 commit comments