fork of https://github.com/sourcegraph/zoekt
1FROM alpine:3.19
2
3RUN apk add --no-cache ca-certificates bind-tools tini
4
5# Run as non-root user sourcegraph. External volumes should be mounted under /data (which will be owned by sourcegraph).
6RUN mkdir -p /home/sourcegraph
7RUN addgroup -S sourcegraph && adduser -S -G sourcegraph -h /home/sourcegraph sourcegraph && mkdir -p /data && chown -R sourcegraph:sourcegraph /data
8USER sourcegraph
9WORKDIR /home/sourcegraph
10
11ENV DATA_DIR /data/index
12RUN mkdir -p ${DATA_DIR}
13
14# We copy from the locally built zoekt image
15COPY --from=zoekt /usr/local/bin/zoekt-webserver /usr/local/bin/
16
17# zoekt-webserver has a large stable heap size (10s of gigs), and as such the
18# default GOGC=100 could be better tuned. https://dave.cheney.net/tag/gogc
19# In go1.18 the GC changed significantly and from experimentation we tuned it
20# down from 50 to 25.
21ENV GOGC=25
22
23ENTRYPOINT ["/sbin/tini", "--"]
24CMD zoekt-webserver -index $DATA_DIR -pprof -rpc -indexserver_proxy