# 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"]