fix
This commit is contained in:
parent
4ec12873bd
commit
56c45365c6
|
|
@ -0,0 +1,43 @@
|
|||
FROM python:3.11-slim
|
||||
|
||||
# Установка системных зависимостей
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential \
|
||||
curl \
|
||||
git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Создание рабочей директории
|
||||
WORKDIR /app
|
||||
|
||||
# Копирование файлов зависимостей
|
||||
COPY pyproject.toml ./
|
||||
COPY requirements_new.txt ./
|
||||
|
||||
# Установка Python зависимостей
|
||||
RUN pip install --no-cache-dir -r requirements_new.txt
|
||||
|
||||
# Копирование исходного кода
|
||||
COPY . .
|
||||
|
||||
# Создание директорий для данных и логов
|
||||
RUN mkdir -p /app/data /app/logs
|
||||
|
||||
# Создание пользователя для безопасности
|
||||
RUN groupadd -r myapp && useradd -r -g myapp myapp
|
||||
RUN chown -R myapp:myapp /app
|
||||
USER myapp
|
||||
|
||||
# Порт приложения
|
||||
EXPOSE 15100
|
||||
|
||||
# Переменные окружения
|
||||
ENV PYTHONPATH=/app
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
|
||||
# Health check
|
||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
||||
CMD curl -f http://localhost:15100/health || exit 1
|
||||
|
||||
# Команда запуска
|
||||
CMD ["python", "start_my_network.py"]
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
"""
|
||||
MY Uploader Bot - Distributed Content Protocol
|
||||
Main application package
|
||||
"""
|
||||
|
||||
__version__ = "2.0.0"
|
||||
__author__ = "MY Network Team"
|
||||
__description__ = "Distributed Content Protocol v2.0"
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Быстрое исправление и перезапуск MY Network приложения
|
||||
set -e
|
||||
|
||||
echo "🔧 ИСПРАВЛЕНИЕ ПРИЛОЖЕНИЯ MY NETWORK"
|
||||
|
||||
# Остановка контейнеров
|
||||
echo ""
|
||||
echo "=== 1. ОСТАНОВКА КОНТЕЙНЕРОВ ==="
|
||||
docker-compose -f deployment/docker-compose.production.yml down app
|
||||
|
||||
# Перестройка приложения
|
||||
echo ""
|
||||
echo "=== 2. ПЕРЕСТРОЙКА ПРИЛОЖЕНИЯ ==="
|
||||
docker-compose -f deployment/docker-compose.production.yml build app --no-cache
|
||||
|
||||
# Запуск приложения
|
||||
echo ""
|
||||
echo "=== 3. ЗАПУСК ПРИЛОЖЕНИЯ ==="
|
||||
docker-compose -f deployment/docker-compose.production.yml up app -d
|
||||
|
||||
# Ожидание запуска
|
||||
echo ""
|
||||
echo "=== 4. ОЖИДАНИЕ ЗАПУСКА ==="
|
||||
echo "Ждем 30 секунд для инициализации..."
|
||||
sleep 30
|
||||
|
||||
# Проверка статуса
|
||||
echo ""
|
||||
echo "=== 5. ПРОВЕРКА СТАТУСА ==="
|
||||
|
||||
echo "📦 Статус контейнеров:"
|
||||
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -E "(my-uploader-app|my-postgres|my-redis)"
|
||||
|
||||
echo ""
|
||||
echo "🧪 Тестирование endpoints:"
|
||||
|
||||
# Тест локального endpoint
|
||||
if timeout 10 curl -s http://localhost:15100/health > /dev/null 2>&1; then
|
||||
echo "✅ Приложение работает: http://localhost:15100/health"
|
||||
else
|
||||
echo "❌ Приложение НЕ отвечает на http://localhost:15100/health"
|
||||
echo ""
|
||||
echo "📄 Последние логи:"
|
||||
docker logs --tail=20 my-uploader-app
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Показать информацию
|
||||
echo ""
|
||||
echo "=== 6. ИНФОРМАЦИЯ О ПРИЛОЖЕНИИ ==="
|
||||
curl -s http://localhost:15100/health | python3 -m json.tool 2>/dev/null || echo "Health endpoint недоступен"
|
||||
|
||||
echo ""
|
||||
echo "🌐 Endpoints:"
|
||||
echo "• http://localhost:15100/health - Health check"
|
||||
echo "• http://localhost:15100/ - Main page"
|
||||
echo "• http://localhost:15100/api/docs - API Documentation"
|
||||
echo "• http://localhost:15100/api/my/monitor/ - Monitoring"
|
||||
|
||||
echo ""
|
||||
echo "✅ ПРИЛОЖЕНИЕ ЗАПУЩЕНО И РАБОТАЕТ!"
|
||||
echo ""
|
||||
echo "Теперь можно настроить SSL:"
|
||||
echo "sudo ./setup_ssl_for_domain.sh"
|
||||
|
|
@ -10,12 +10,12 @@ echo "🔒 НАСТРОЙКА SSL ДЛЯ $DOMAIN"
|
|||
# Проверка что приложение работает
|
||||
echo ""
|
||||
echo "=== 1. ПРОВЕРКА ПРИЛОЖЕНИЯ ==="
|
||||
if timeout 5 curl -s http://localhost:3000/api/health > /dev/null 2>&1; then
|
||||
echo "✅ Приложение работает на порту 3000"
|
||||
if timeout 5 curl -s http://localhost:15100/health > /dev/null 2>&1; then
|
||||
echo "✅ Приложение работает на порту 15100"
|
||||
else
|
||||
echo "❌ Приложение НЕ работает на порту 3000!"
|
||||
echo "❌ Приложение НЕ работает на порту 15100!"
|
||||
echo "Сначала исправьте приложение:"
|
||||
echo "docker-compose -f deployment/docker-compose.production.yml restart app"
|
||||
echo "chmod +x fix_app_restart.sh && ./fix_app_restart.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ server {
|
|||
}
|
||||
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:3000/api/;
|
||||
proxy_pass http://127.0.0.1:15100/api/;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
|
|
@ -46,13 +46,13 @@ server {
|
|||
}
|
||||
|
||||
location /health {
|
||||
proxy_pass http://127.0.0.1:3000/api/health;
|
||||
proxy_pass http://127.0.0.1:15100/health;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000/;
|
||||
proxy_pass http://127.0.0.1:15100/;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
|
|
@ -133,7 +133,7 @@ server {
|
|||
client_max_body_size 100M;
|
||||
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:3000/api/;
|
||||
proxy_pass http://127.0.0.1:15100/api/;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
|
|
@ -144,14 +144,14 @@ server {
|
|||
}
|
||||
|
||||
location /health {
|
||||
proxy_pass http://127.0.0.1:3000/api/health;
|
||||
proxy_pass http://127.0.0.1:15100/health;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000/;
|
||||
proxy_pass http://127.0.0.1:15100/;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
|
|
|
|||
|
|
@ -247,12 +247,12 @@ def main():
|
|||
app.add_event_handler("startup", startup_event)
|
||||
app.add_event_handler("shutdown", shutdown_event)
|
||||
|
||||
# Определить порт
|
||||
port = 8000
|
||||
# Определить порт (15100 для MY Network)
|
||||
port = 15100
|
||||
|
||||
# Попробовать найти свободный порт
|
||||
# Попробовать найти свободный порт (приоритет 15100)
|
||||
import socket
|
||||
for test_port in [8000, 8001, 8080, 15100]:
|
||||
for test_port in [15100, 8000, 8001, 8080]:
|
||||
try:
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
sock.bind(('', test_port))
|
||||
|
|
|
|||
Loading…
Reference in New Issue