1
0
mirror of https://github.com/aNNiMON/ffmpegbot synced 2024-09-19 22:54:20 +03:00

Fix python dependencies in Dockerfile, use ENV

This commit is contained in:
aNNiMON 2023-05-22 22:26:22 +03:00
parent f2c31b6115
commit f4fb7c297e
4 changed files with 46 additions and 12 deletions

View File

@ -14,10 +14,12 @@ RUN GRADLE_OPTS="-Xmx256m" gradle shadowJar --build-cache --stacktrace --no-daem
FROM eclipse-temurin:17-jre-alpine
RUN apk add --no-cache python3 py3-pip ffmpeg \
&& python3 -m pip install --upgrade wheel \
&& python3 -m pip install --upgrade yt-dlp
&& python3 -m pip install --upgrade yt-dlp \
&& python3 -m pip install --upgrade pyrogram \
&& python3 -m pip install --upgrade TgCrypto
WORKDIR /app
COPY --from=builder /usr/src/java-code/build/libs/ffmpegbot-1.0-SNAPSHOT-all.jar .
RUN mkdir input && mkdir output
COPY pytgfile.py .
COPY ffmpegbot.yaml .
ENTRYPOINT ["java", "-jar", "/app/ffmpegbot-1.0-SNAPSHOT-all.jar"]
COPY ffmpegbot-docker.yaml .
ENTRYPOINT ["java", "-jar", "/app/ffmpegbot-1.0-SNAPSHOT-all.jar", "docker"]

View File

@ -1,4 +1,4 @@
# ffmpegbot
_# ffmpegbot
Telegram Bot for re-encoding media
@ -20,14 +20,6 @@ Telegram Bot for re-encoding media
## Installation
### Using Docker
```bash
cp ffmpegbot.yaml.template ffmpegbot.yaml
vim ffmpegbot.yaml
docker build --tag 'ffmpegbot' .
```
### Manual
```bash
@ -40,3 +32,28 @@ mkdir {input,output}
# Run
java -jar ./build/libs/ffmpegbot-1.0-SNAPSHOT-all.jar
```
### Using Docker
Note: FFmpeg binary might be installed with limited number of filters and codecs. Some bot features might not work (Audio pitch, robot effect, etc).
```bash
# Edit user ids in `superUsers` and `allowedUsers` fields
vim ffmpegbot-docker.yaml
docker build --tag 'ffmpegbot' .
docker run -d -t -i \
-e BOT_TOKEN='...' \
-e BOT_USERNAME='...' \
-e APP_ID='...' \
-e APP_HASH='...'\
--name ffmpegbot ffmpegbot:latest
```
#### Environment variables
- `BOT_TOKEN` — Telegram bot token
- `BOT_USERNAME` — Telegram bot username
- `APP_ID` — Telegram API app_id (see https://core.telegram.org/api/obtaining_api_id)
- `APP_HASH` — Telegram API app_hash

11
ffmpegbot-docker.yaml Normal file
View File

@ -0,0 +1,11 @@
botToken: env(BOT_TOKEN)
botUsername: env(BOT_USERNAME)
# Telegram API app_id / app_hash
appId: env(APP_ID)
appHash: env(APP_HASH)
# Path to Telegram API file downloader script
downloaderScript: pytgfile.py
# Superusers can execute /run command
superUsers: [12345]
# Allowed user ids
allowedUsers: [12346, 12347]

View File

@ -1,5 +1,7 @@
import argparse
import asyncio
import traceback
import logging
import pathlib
import pyrogram
import pyrogram.file_id
@ -58,6 +60,8 @@ if __name__ == '__main__':
try:
asyncio.run(args.func(args))
except Exception as e:
logging.error(traceback.format_exc())
except:
exit(1)