# Build: docker build -t megalodon . FROM golang:1.27-alpine AS build WORKDIR /src COPY . . RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o /megalodon ./cmd/megalodon FROM alpine:3.20 RUN apk add --no-cache tzdata ca-certificates && adduser -D -u 10001 megalodon && mkdir /config && chown megalodon /config COPY --from=build /megalodon /usr/local/bin/megalodon USER megalodon # The config file and the data directory (events, players, bans) both live under /config. ENV MEGALODON_CONFIG=/config/megalodon.json WORKDIR /config EXPOSE 8480 HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://127.0.0.1:8480/healthz || exit 1 ENTRYPOINT ["megalodon", "serve", "-listen", "0.0.0.0:8480"]