Convert project to workspace with Tonic for gRPC. #84
|
@ -0,0 +1,35 @@
|
||||||
|
# Builder image with development dependencies.
|
||||||
|
FROM bougyman/voidlinux:glibc as builder
|
||||||
|
RUN xbps-install -Syu
|
||||||
|
RUN xbps-install -Sy base-devel rustup cargo cmake wget gnupg
|
||||||
|
RUN xbps-install -Sy openssl-devel libstdc++-devel
|
||||||
|
RUN rustup-init -qy
|
||||||
|
RUN rustup component add rustfmt # Needed for protobuf building.
|
||||||
|
|
||||||
|
# Install tini for signal processing and zombie killing
|
||||||
|
ENV TINI_VERSION v0.19.0
|
||||||
|
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /usr/local/bin/tini
|
||||||
|
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini.asc /tini.asc
|
||||||
|
RUN gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
|
||||||
|
&& gpg --batch --verify /tini.asc /usr/local/bin/tini
|
||||||
|
RUN chmod +x /usr/local/bin/tini
|
||||||
|
|
||||||
|
# Build dicebot
|
||||||
|
RUN mkdir -p /root/src
|
||||||
|
WORKDIR /root/src
|
||||||
|
ADD . ./
|
||||||
|
RUN . /root/.cargo/env && cargo build --release
|
||||||
|
|
||||||
|
# Final image
|
||||||
|
FROM bougyman/voidlinux:tiny
|
||||||
|
RUN xbps-install -Sy ca-certificates libstdc++
|
||||||
|
COPY --from=builder \
|
||||||
|
/root/src/target/release/dicebot \
|
||||||
|
/usr/local/bin/
|
||||||
|
COPY --from=builder \
|
||||||
|
/usr/local/bin/tini \
|
||||||
|
/usr/local/bin/
|
||||||
|
|
||||||
|
ENV XDG_CACHE_HOME "/cache"
|
||||||
|
ENV DATABASE_PATH "/cache/bot-db"
|
||||||
|
ENTRYPOINT [ "/usr/local/bin/tini", "-v", "--", "/usr/local/bin/dicebot", "/config/dicebot-config.toml" ]
|
Loading…
Reference in New Issue