forked from
tangled.org/core
Monorepo for Tangled
1.3 kB
44 lines
1# Development only. Not for production use.
2
3FROM golang:1.25-alpine AS builder
4
5RUN apk add --no-cache git
6
7ENV CGO_ENABLED=0
8ENV GOCACHE=/go/cache
9ENV GOMODCACHE=/go/mod
10ENV GOBIN=/out
11
12WORKDIR /src
13
14COPY go.mod go.sum ./
15RUN --mount=type=cache,target=/go/cache \
16 --mount=type=cache,target=/go/mod \
17 go mod download
18
19# zoekt-git-index is invoked at runtime by zoekt-tngl-indexserver via PATH.
20RUN --mount=type=cache,target=/go/cache \
21 --mount=type=cache,target=/go/mod \
22 go install github.com/sourcegraph/zoekt/cmd/zoekt-git-index@latest
23
24COPY . .
25RUN --mount=type=cache,target=/go/cache \
26 --mount=type=cache,target=/go/mod \
27 go build -o /out/zoekt-tngl-indexserver ./cmd/zoekt-tngl-indexserver
28
29FROM alpine:3.20
30
31RUN apk add --no-cache git ca-certificates tini
32
33# Trust dev CA in the system bundle so git/curl/openssl all accept caddy certs.
34COPY localinfra/certs/root.crt /usr/local/share/ca-certificates/caddy.crt
35RUN update-ca-certificates
36
37COPY --from=builder /out/zoekt-tngl-indexserver /usr/local/bin/zoekt-tngl-indexserver
38COPY --from=builder /out/zoekt-git-index /usr/local/bin/zoekt-git-index
39RUN chmod 0755 /usr/local/bin/zoekt-tngl-indexserver /usr/local/bin/zoekt-git-index
40
41EXPOSE 6060
42
43ENTRYPOINT ["/sbin/tini", "--"]
44CMD ["zoekt-tngl-indexserver", "serve", "-index_dir", "/data/index"]