Обновлен файл docker-compose.yml для использования образа salvagebot и изменения переменных окружения на значения по умолчанию. Изменены пути для логов и изображений. Обновлен Dockerfile для создания рабочей директории с правильными правами. В main.py исправлены ссылки на переменные окружения. Эти изменения упрощают настройку и улучшают структуру проекта.
This commit is contained in:
parent
3e1a090fc8
commit
df0eb4536a
12
Dockerfile
12
Dockerfile
@ -21,11 +21,16 @@ RUN mkdir -p /opt/oracle && \
|
|||||||
|
|
||||||
# Устанавливаем переменные окружения для Oracle
|
# Устанавливаем переменные окружения для Oracle
|
||||||
ENV ORACLE_HOME=/opt/oracle/instantclient_19_21
|
ENV ORACLE_HOME=/opt/oracle/instantclient_19_21
|
||||||
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_19_21:$LD_LIBRARY_PATH
|
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_19_21${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||||
ENV PATH=/opt/oracle/instantclient_19_21:$PATH
|
ENV PATH=/opt/oracle/instantclient_19_21:$PATH
|
||||||
|
|
||||||
# Создаем пользователя для безопасности
|
# Создаем пользователя для безопасности
|
||||||
RUN useradd --create-home --shell /bin/bash salvagebot
|
RUN useradd --create-home --shell /bin/bash salvagebot
|
||||||
|
|
||||||
|
# Создаем рабочую директорию и устанавливаем права
|
||||||
|
RUN mkdir -p /home/salvagebot/app && \
|
||||||
|
chown -R salvagebot:salvagebot /home/salvagebot/app
|
||||||
|
|
||||||
USER salvagebot
|
USER salvagebot
|
||||||
WORKDIR /home/salvagebot/app
|
WORKDIR /home/salvagebot/app
|
||||||
|
|
||||||
@ -44,8 +49,9 @@ USER salvagebot
|
|||||||
# Копируем код приложения
|
# Копируем код приложения
|
||||||
COPY --chown=salvagebot:salvagebot . .
|
COPY --chown=salvagebot:salvagebot . .
|
||||||
|
|
||||||
# Создаем необходимые директории
|
# Создаем необходимые директории с правильными правами
|
||||||
RUN mkdir -p logs images data
|
RUN mkdir -p logs images data && \
|
||||||
|
chmod 755 logs images data
|
||||||
|
|
||||||
# Устанавливаем переменные окружения Python
|
# Устанавливаем переменные окружения Python
|
||||||
ENV PYTHONPATH=/home/salvagebot/app
|
ENV PYTHONPATH=/home/salvagebot/app
|
||||||
|
|||||||
10
build.cmd
Normal file
10
build.cmd
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
@echo off
|
||||||
|
for /f "tokens=*" %%i in ('powershell -Command "Get-Date -Format 'yyyyMMdd'"') do set TAG=%%i
|
||||||
|
echo Building with tag: %TAG%
|
||||||
|
del salvagebot
|
||||||
|
docker rmi vladsimachkov/salvagebot:%TAG% 2>nul
|
||||||
|
docker buildx build --no-cache --progress=plain -t vladsimachkov/salvagebot:%TAG% .
|
||||||
|
docker save vladsimachkov/salvagebot:%TAG% >salvagebot
|
||||||
|
|
||||||
|
#docker tag vladsimachkov/salvagebot:%TAG% reg.ddl.su/salvagedb/salvagenas_filecheker:%TAG%
|
||||||
|
#docker push reg.ddl.su/salvagedb/salvagenas_filecheker:%TAG%
|
||||||
@ -2,9 +2,7 @@ version: '3.8'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
salvagedb-bot:
|
salvagedb-bot:
|
||||||
build:
|
image: vladsimachkov/salvagebot:20250605
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
container_name: salvagedb-telegram-bot
|
container_name: salvagedb-telegram-bot
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
@ -21,95 +19,17 @@ services:
|
|||||||
- IMG_PRICE=100
|
- IMG_PRICE=100
|
||||||
|
|
||||||
# База данных Oracle
|
# База данных Oracle
|
||||||
- db_user=your_db_user
|
- DB_USER=salvagebot
|
||||||
- db_password=your_db_password
|
- DB_PASSWORD=salvagebot
|
||||||
- db_dsn=localhost:1521/XEPDB1
|
- DB_DSN=localhost:1521/XEPDB1
|
||||||
|
|
||||||
# Настройки приложения
|
# Настройки приложения
|
||||||
- DEBUG=0
|
- DEBUG=0
|
||||||
- PYTHONUNBUFFERED=1
|
- PYTHONUNBUFFERED=1
|
||||||
- TZ=UTC
|
- TZ=Europe/Moscow
|
||||||
|
|
||||||
# Монтируем volumes для логов и изображений
|
# Монтируем volumes для логов и изображений
|
||||||
volumes:
|
volumes:
|
||||||
- ./logs:/home/salvagebot/app/logs
|
- /volume2/salvagedb/salvage_bot/logs:/home/salvagebot/app/logs
|
||||||
- ./images:/home/salvagebot/app/images:ro # read-only для изображений
|
- /volume2/salvagedb/images:/images
|
||||||
- ./data:/home/salvagebot/app/data # дополнительные данные если нужны
|
|
||||||
|
|
||||||
# Настройки сети
|
|
||||||
networks:
|
|
||||||
- salvagedb-network
|
|
||||||
|
|
||||||
# Ограничения ресурсов
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 512M
|
|
||||||
cpus: '0.5'
|
|
||||||
reservations:
|
|
||||||
memory: 256M
|
|
||||||
cpus: '0.25'
|
|
||||||
|
|
||||||
# Политика перезапуска
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# Зависимости (если есть другие сервисы)
|
|
||||||
depends_on: []
|
|
||||||
|
|
||||||
# Логирование
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "10m"
|
|
||||||
max-file: "3"
|
|
||||||
|
|
||||||
# Проверка здоровья
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "python", "-c", "import sys; sys.exit(0)"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
|
|
||||||
# Дополнительные сервисы (если понадобятся)
|
|
||||||
# nginx:
|
|
||||||
# image: nginx:alpine
|
|
||||||
# container_name: salvagedb-nginx
|
|
||||||
# restart: unless-stopped
|
|
||||||
# ports:
|
|
||||||
# - "80:80"
|
|
||||||
# - "443:443"
|
|
||||||
# volumes:
|
|
||||||
# - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
||||||
# - ./nginx/ssl:/etc/nginx/ssl:ro
|
|
||||||
# networks:
|
|
||||||
# - salvagedb-network
|
|
||||||
# depends_on:
|
|
||||||
# - salvagedb-bot
|
|
||||||
|
|
||||||
# redis:
|
|
||||||
# image: redis:7-alpine
|
|
||||||
# container_name: salvagedb-redis
|
|
||||||
# restart: unless-stopped
|
|
||||||
# volumes:
|
|
||||||
# - redis_data:/data
|
|
||||||
# networks:
|
|
||||||
# - salvagedb-network
|
|
||||||
# command: redis-server --appendonly yes
|
|
||||||
|
|
||||||
# Определяем сети
|
|
||||||
networks:
|
|
||||||
salvagedb-network:
|
|
||||||
driver: bridge
|
|
||||||
ipam:
|
|
||||||
config:
|
|
||||||
- subnet: 172.20.0.0/16
|
|
||||||
|
|
||||||
# Определяем volumes
|
|
||||||
volumes:
|
|
||||||
# redis_data:
|
|
||||||
# driver: local
|
|
||||||
logs_data:
|
|
||||||
driver: local
|
|
||||||
images_data:
|
|
||||||
driver: local
|
|
||||||
11
main.py
11
main.py
@ -21,7 +21,10 @@ def setup_logging():
|
|||||||
Настройка системы логирования с ротацией файлов и выводом в консоль
|
Настройка системы логирования с ротацией файлов и выводом в консоль
|
||||||
"""
|
"""
|
||||||
# Создаем каталог logs если он не существует
|
# Создаем каталог logs если он не существует
|
||||||
|
if is_windows():
|
||||||
logs_dir = "logs"
|
logs_dir = "logs"
|
||||||
|
else:
|
||||||
|
logs_dir = "/logs/"
|
||||||
if not os.path.exists(logs_dir):
|
if not os.path.exists(logs_dir):
|
||||||
os.makedirs(logs_dir)
|
os.makedirs(logs_dir)
|
||||||
print(f"Created logs directory: {logs_dir}")
|
print(f"Created logs directory: {logs_dir}")
|
||||||
@ -396,13 +399,13 @@ IMG_PRICE = getenv("IMG_PRICE",100)
|
|||||||
if is_windows():
|
if is_windows():
|
||||||
image_path = "D:\\SALVAGEDB\\salvagedb_bot\\images"
|
image_path = "D:\\SALVAGEDB\\salvagedb_bot\\images"
|
||||||
else:
|
else:
|
||||||
image_path = "/images/"
|
image_path = "/images"
|
||||||
|
|
||||||
|
|
||||||
oracle_db = OracleDatabase(
|
oracle_db = OracleDatabase(
|
||||||
user= getenv("db_user"),
|
user= getenv("DB_USER"),
|
||||||
password= getenv("db_password"),
|
password= getenv("DB_PASSWORD"),
|
||||||
dsn= getenv("db_dsn")
|
dsn= getenv("DB_DSN")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
salvagebot
Normal file
BIN
salvagebot
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user