mirror of
https://github.com/Syping/dtranslatebot-container.git
synced 2024-11-21 21:30:24 +01:00
initial commit
This commit is contained in:
commit
f24b50ceae
2 changed files with 107 additions and 0 deletions
53
Containerfile
Normal file
53
Containerfile
Normal file
|
@ -0,0 +1,53 @@
|
|||
FROM almalinux:9
|
||||
|
||||
ARG DPP_COMMIT=9ccd5db6171862f85c481974a6b3acd6d3ae6741
|
||||
ARG DTB_COMMIT=7dcb64f7cf0244dac75b56d8e36dcceb1d683fde
|
||||
|
||||
RUN dnf install -y python3 python3-requests && \
|
||||
dnf clean all
|
||||
RUN dnf install -y python3-pip && \
|
||||
dnf clean all && \
|
||||
mkdir -p /opt/libretranslate && \
|
||||
python3 -m venv /opt/libretranslate && \
|
||||
source /opt/libretranslate/bin/activate && \
|
||||
pip3 install libretranslate==1.5.5 \
|
||||
--extra-index-url https://download.pytorch.org/whl/cpu && \
|
||||
dnf remove -y python3-pip
|
||||
RUN dnf install -y yum-utils && \
|
||||
dnf config-manager --set-enabled crb && \
|
||||
dnf install -y cmake clang git ninja-build openssl-devel openssl-libs zlib zlib-devel && \
|
||||
mkdir -p /root/src && \
|
||||
cd /root/src && \
|
||||
git clone https://github.com/brainboxdotcc/DPP.git dpp && \
|
||||
cd dpp && \
|
||||
git reset --hard $DPP_COMMIT && \
|
||||
cd /root/src && \
|
||||
cmake -B dpp-build dpp \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CXX_COMPILER=clang++ \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-s \
|
||||
-GNinja && \
|
||||
cmake --build dpp-build && \
|
||||
cmake --install dpp-build && \
|
||||
git clone https://github.com/Syping/dtranslatebot.git dtranslatebot && \
|
||||
cd dtranslatebot && \
|
||||
git reset --hard $DBT_COMMIT && \
|
||||
cd /root/src && \
|
||||
cmake -B dtranslatebot-build dtranslatebot \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CXX_COMPILER=clang++ \
|
||||
-DCMAKE_EXE_LINKER_FLAGS=-s \
|
||||
-DCMAKE_INSTALL_RPATH=/usr/local/lib64 \
|
||||
-GNinja && \
|
||||
cmake --build dtranslatebot-build && \
|
||||
cmake --install dtranslatebot-build && \
|
||||
cd /root && \
|
||||
rm -rf \
|
||||
/root/src \
|
||||
/usr/local/include \
|
||||
/usr/local/lib64/cmake \
|
||||
/usr/local/lib64/pkgconfig && \
|
||||
dnf remove -y cmake clang git openssl-devel yum-utils zlib-devel && \
|
||||
dnf clean all
|
||||
COPY dtranslatebot-ltd.py /usr/local/bin/dtranslatebot-ltd
|
||||
ENTRYPOINT ["/usr/local/bin/dtranslatebot-ltd"]
|
54
dtranslatebot-ltd.py
Executable file
54
dtranslatebot-ltd.py
Executable file
|
@ -0,0 +1,54 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import json
|
||||
import requests
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: dtranslatebot-ltd [token]")
|
||||
return
|
||||
|
||||
dtb_config = {
|
||||
'token': sys.argv[1],
|
||||
'translator': {
|
||||
'url': 'http://127.0.0.1:5000/'
|
||||
}
|
||||
}
|
||||
dtb_json = json.dumps(dtb_config)
|
||||
with open("/usr/local/etc/dtranslatebot.json", "w") as dtb_json_file:
|
||||
dtb_json_file.write(dtb_json)
|
||||
|
||||
os.makedirs("/root/libretranslate", mode=755, exist_ok=True)
|
||||
lt_env = os.environ.copy()
|
||||
lt_env["LT_HOST"] = "127.0.0.1"
|
||||
lt_env["LT_PORT"] = "5000"
|
||||
lt_env["LT_DISABLE_FILES_TRANSLATION"] = "1"
|
||||
lt_env["LT_DISABLE_WEB_UI"] = "1"
|
||||
print("[Service] Launching LibreTranslate...")
|
||||
lt = subprocess.Popen(["/opt/libretranslate/bin/libretranslate"], cwd="/root/libretranslate", env=lt_env)
|
||||
|
||||
while True:
|
||||
try:
|
||||
r = requests.get("http://127.0.0.1:5000/languages", timeout=5)
|
||||
if r.status_code == 200:
|
||||
break;
|
||||
return r.status_code
|
||||
except requests.exceptions.ConnectionError:
|
||||
time.sleep(1)
|
||||
except requests.exceptions.Timeout:
|
||||
pass
|
||||
|
||||
os.makedirs("/root/dtranslatebot", mode=755, exist_ok=True)
|
||||
os.makedirs("/root/dtranslatebot/db", mode=755, exist_ok=True)
|
||||
dtb_env = os.environ.copy()
|
||||
dtb_env["DTRANSLATEBOT_STORAGE"] = "/root/dtranslatebot/db"
|
||||
print("[Service] Launching dtranslatebot...")
|
||||
dtb = subprocess.run(["/usr/local/bin/dtranslatebot", "/usr/local/etc/dtranslatebot.json"], cwd="/root/dtranslatebot", env=dtb_env)
|
||||
return dtb.returncode
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
Loading…
Reference in a new issue