dtranslatebot/Containerfile
2026-03-21 17:20:04 +01:00

65 lines
2 KiB
Docker

# Build dtranslatebot
FROM alpine:3.23 AS build
RUN apk add --no-cache \
clang \
cmake \
curl-dev \
git \
jq \
libc++-dev \
llvm-libunwind-dev \
ninja-build \
openssl-dev \
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 git clone https://github.com/brainboxdotcc/DPP.git --branch "v$DPP_VERSION" --depth=1 --single-branch
RUN cmake \
-DAVX_TYPE=AVX0 \
-DBUILD_VOICE_SUPPORT=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
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 --disabled-password dtranslatebot
USER dtranslatebot
WORKDIR /home/dtranslatebot
COPY --from=build /build/dtranslatebot.json .
ENTRYPOINT ["/opt/dtranslatebot/bin/dtranslatebot", "--wait-for-translator", "dtranslatebot.json"]