add Containerfile and increase version to 0.3.0

This commit is contained in:
Syping 2026-03-21 02:23:48 +01:00
parent 63399a010d
commit 1164b18fd5
3 changed files with 68 additions and 9 deletions

View file

@ -18,7 +18,7 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
cmake_policy(VERSION 3.16...3.27) cmake_policy(VERSION 3.16...3.27)
project(dtranslatebot VERSION 0.2.0 LANGUAGES CXX) project(dtranslatebot VERSION 0.3.0 LANGUAGES CXX)
include(GNUInstallDirs) include(GNUInstallDirs)
# dtranslatebot Source files # dtranslatebot Source files
@ -62,12 +62,6 @@ set(DTRANSLATEBOT_SOURCES
# dtranslatebot Module Path # dtranslatebot Module Path
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
# curl Library
find_package(CURL REQUIRED)
list(APPEND DTRANSLATEBOT_LIBRARIES
CURL::libcurl
)
# Boost C++ Libraries # Boost C++ Libraries
option(WITH_BOOST "Build with Boost C++ Libraries" OFF) option(WITH_BOOST "Build with Boost C++ Libraries" OFF)
if (WITH_BOOST) if (WITH_BOOST)
@ -80,6 +74,9 @@ if (WITH_BOOST)
endif() endif()
endif() endif()
# curl Library
find_package(CURL REQUIRED)
# D++ Discord API Library for Bots # D++ Discord API Library for Bots
option(WITH_DPP_STATIC_BUNDLE "Build with DPP Static Bundle" OFF) option(WITH_DPP_STATIC_BUNDLE "Build with DPP Static Bundle" OFF)
if (WITH_DPP_STATIC_BUNDLE) if (WITH_DPP_STATIC_BUNDLE)
@ -133,7 +130,7 @@ target_compile_definitions(dtranslatebot PRIVATE
if (MSVC AND MSVC_VERSION GREATER_EQUAL 1914) if (MSVC AND MSVC_VERSION GREATER_EQUAL 1914)
target_compile_options(dtranslatebot PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/Zc:__cplusplus>) target_compile_options(dtranslatebot PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/Zc:__cplusplus>)
endif() endif()
target_link_libraries(dtranslatebot PRIVATE ${DTRANSLATEBOT_LIBRARIES} ${DPP_LIBRARIES} Threads::Threads) target_link_libraries(dtranslatebot PRIVATE ${DTRANSLATEBOT_LIBRARIES} ${DPP_LIBRARIES} CURL::libcurl Threads::Threads)
target_include_directories(dtranslatebot PRIVATE ${DPP_INCLUDE_DIR}) target_include_directories(dtranslatebot PRIVATE ${DPP_INCLUDE_DIR})
set_target_properties(dtranslatebot PROPERTIES set_target_properties(dtranslatebot PROPERTIES
CXX_STANDARD 17 CXX_STANDARD 17

62
Containerfile Normal file
View file

@ -0,0 +1,62 @@
# Build dtranslatebot
FROM alpine:3.23 AS build
RUN apk add --no-cache \
clang \
cmake \
curl-dev \
git \
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
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
# 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
WORKDIR /home/dtranslatebot
USER dtranslatebot
ENTRYPOINT ["/opt/dtranslatebot/bin/dtranslatebot", "--wait-for-translator", "/home/dtranslatebot/dtranslatebot.json"]

View file

@ -15,7 +15,7 @@
%endif %endif
Name: dtranslatebot Name: dtranslatebot
Version: 0.2.0 Version: 0.3.0
Release: 1%{?dist} Release: 1%{?dist}
Summary: Discord Translation Bot Summary: Discord Translation Bot
License: BSD-2-Clause License: BSD-2-Clause