Обновлен файл 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
|
||||
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
|
||||
|
||||
# Создаем пользователя для безопасности
|
||||
RUN useradd --create-home --shell /bin/bash salvagebot
|
||||
|
||||
# Создаем рабочую директорию и устанавливаем права
|
||||
RUN mkdir -p /home/salvagebot/app && \
|
||||
chown -R salvagebot:salvagebot /home/salvagebot/app
|
||||
|
||||
USER salvagebot
|
||||
WORKDIR /home/salvagebot/app
|
||||
|
||||
@ -44,8 +49,9 @@ USER salvagebot
|
||||
# Копируем код приложения
|
||||
COPY --chown=salvagebot:salvagebot . .
|
||||
|
||||
# Создаем необходимые директории
|
||||
RUN mkdir -p logs images data
|
||||
# Создаем необходимые директории с правильными правами
|
||||
RUN mkdir -p logs images data && \
|
||||
chmod 755 logs images data
|
||||
|
||||
# Устанавливаем переменные окружения Python
|
||||
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:
|
||||
salvagedb-bot:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: vladsimachkov/salvagebot:20250605
|
||||
container_name: salvagedb-telegram-bot
|
||||
restart: unless-stopped
|
||||
|
||||
@ -21,95 +19,17 @@ services:
|
||||
- IMG_PRICE=100
|
||||
|
||||
# База данных Oracle
|
||||
- db_user=your_db_user
|
||||
- db_password=your_db_password
|
||||
- db_dsn=localhost:1521/XEPDB1
|
||||
- DB_USER=salvagebot
|
||||
- DB_PASSWORD=salvagebot
|
||||
- DB_DSN=localhost:1521/XEPDB1
|
||||
|
||||
# Настройки приложения
|
||||
- DEBUG=0
|
||||
- PYTHONUNBUFFERED=1
|
||||
- TZ=UTC
|
||||
- TZ=Europe/Moscow
|
||||
|
||||
# Монтируем volumes для логов и изображений
|
||||
volumes:
|
||||
- ./logs:/home/salvagebot/app/logs
|
||||
- ./images:/home/salvagebot/app/images:ro # read-only для изображений
|
||||
- ./data:/home/salvagebot/app/data # дополнительные данные если нужны
|
||||
- /volume2/salvagedb/salvage_bot/logs:/home/salvagebot/app/logs
|
||||
- /volume2/salvagedb/images:/images
|
||||
|
||||
# Настройки сети
|
||||
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 если он не существует
|
||||
if is_windows():
|
||||
logs_dir = "logs"
|
||||
else:
|
||||
logs_dir = "/logs/"
|
||||
if not os.path.exists(logs_dir):
|
||||
os.makedirs(logs_dir)
|
||||
print(f"Created logs directory: {logs_dir}")
|
||||
@ -396,13 +399,13 @@ IMG_PRICE = getenv("IMG_PRICE",100)
|
||||
if is_windows():
|
||||
image_path = "D:\\SALVAGEDB\\salvagedb_bot\\images"
|
||||
else:
|
||||
image_path = "/images/"
|
||||
image_path = "/images"
|
||||
|
||||
|
||||
oracle_db = OracleDatabase(
|
||||
user= getenv("db_user"),
|
||||
password= getenv("db_password"),
|
||||
dsn= getenv("db_dsn")
|
||||
user= getenv("DB_USER"),
|
||||
password= getenv("DB_PASSWORD"),
|
||||
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