nim-censor-bot/Dockerfile
baalajimaestro 15dbf2f29d
Do LTO on the binary
Signed-off-by: baalajimaestro <me@baalajimaestro.me>
2022-04-25 10:08:24 +05:30

35 lines
989 B
Docker

FROM nimlang/nim:alpine as builder
RUN apk update && apk add git build-base llvm llvm-dev curl bash openssl openssl-dev openssl-libs-static sqlite-dev sqlite-static
COPY . /app
WORKDIR /app
# Build with necessary params to enable statically linking openssl, glibc and sqlite3
RUN nimble build --passL:-L/usr/lib \
-d:ssl \
--cc:clang \
-p:. \
--dynlibOverride:ssl \
--dynlibOverride:crypto \
--dynlibOverride:sqlite3 \
--passl:-lssl \
--passl:-lsqlite3 \
--passl:-lcrypto \
--passL:-static \
--passL:-flto=thin \
-d:release \
--opt:speed \
--accept
# Our binary lives in this image
FROM gcr.io/distroless/base:latest
COPY --from=builder /app/nim_censor_bot /
ENV DB_HOST="/data/censordata.db"
EXPOSE 8080
VOLUME /data
CMD ["./nim_censor_bot"]