dtranslatebot/Containerfile

70 lines
2.1 KiB
Docker

# Build dtranslatebot
FROM alpine:3.23 AS build
RUN apk add --no-cache \
clang \
cmake \
curl-dev \
jq \
libc++-dev \
llvm-libunwind-dev \
ninja-build \
openssl-dev \
wget \
zlib-dev
WORKDIR /build
COPY CMakeLists.txt dtranslatebot/
COPY cmake/ dtranslatebot/cmake/
COPY src/ dtranslatebot/src/
ENV CC=clang CXX=clang++
ENV DPP_VERSION=10.1.4
RUN wget -q \
"https://github.com/brainboxdotcc/DPP/releases/download/v$DPP_VERSION/DPP-$DPP_VERSION.tar.gz" \
-O "DPP-$DPP_VERSION.tar.gz"
RUN tar xfz "DPP-$DPP_VERSION.tar.gz"
RUN cmake \
-DAVX_TYPE=AVX0 \
-DBUILD_VOICE_SUPPORT=OFF \
-DDPP_BUILD_TEST=OFF \
-DDPP_NO_CORO=ON \
-DDPP_NO_VCPKG=ON \
-DRUN_LDCONFIG=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-stdlib=libc++ \
-DCMAKE_INSTALL_PREFIX=/opt/dtranslatebot \
-DCMAKE_MAKE_PROGRAM=/usr/lib/ninja-build/bin/ninja \
-G Ninja \
-B DPP-build \
"DPP-$DPP_VERSION"
RUN cmake --build DPP-build
RUN cmake --install DPP-build --strip
RUN cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-stdlib=libc++ \
-DCMAKE_INSTALL_PREFIX=/opt/dtranslatebot \
-DCMAKE_INSTALL_RPATH=/opt/dtranslatebot/lib \
-DCMAKE_MAKE_PROGRAM=/usr/lib/ninja-build/bin/ninja \
-G Ninja \
-B dtranslatebot-build \
dtranslatebot
RUN cmake --build dtranslatebot-build
RUN cmake --install dtranslatebot-build --strip
RUN echo '{"translator":{"type":"stub"}}' | jq > dtranslatebot.json
# Create the dtranslatebot Container
FROM alpine:3.23
RUN apk add --no-cache \
libc++ \
libcrypto3 \
libcurl \
libssl3 \
llvm-libunwind \
zlib
COPY --from=build /opt/dtranslatebot/bin/dtranslatebot /opt/dtranslatebot/bin/
COPY --from=build /opt/dtranslatebot/lib/*.so /opt/dtranslatebot/lib/
COPY --from=build /opt/dtranslatebot/lib/*.so.* /opt/dtranslatebot/lib/
RUN adduser -D dtranslatebot
USER dtranslatebot
WORKDIR /home/dtranslatebot
VOLUME /home/dtranslatebot
COPY --from=build /build/dtranslatebot.json .
ENTRYPOINT ["/opt/dtranslatebot/bin/dtranslatebot", "--wait-for-translator", "dtranslatebot.json"]