feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile

- Добавлена колонка 'Тип' во все таблицы истории сборок
- Для push операций отображается registry вместо платформ
- Сохранение пользователя при создании push лога
- Исправлена ошибка с logger в push_docker_image endpoint
- Улучшено отображение истории сборок с визуальными индикаторами
This commit is contained in:
Сергей Антропов
2026-02-15 22:59:02 +03:00
parent 23e1a6037b
commit 1fbf9185a2
232 changed files with 38075 additions and 5 deletions

61
app/Dockerfile Normal file
View File

@@ -0,0 +1,61 @@
# Dockerfile для веб-интерфейса DevOpsLab
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
FROM python:3.11-slim
# Метаданные
LABEL maintainer="Сергей Антропов"
LABEL description="Веб-интерфейс для DevOpsLab"
LABEL site="https://devops.org.ru"
# Установка системных зависимостей
RUN apt-get update && apt-get install -y \
gcc \
g++ \
make \
git \
curl \
ca-certificates \
gnupg \
lsb-release \
tzdata \
&& rm -rf /var/lib/apt/lists/*
# Установка Docker CLI для управления контейнерами через socket
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt-get update \
&& apt-get install -y docker-ce-cli docker-buildx-plugin \
&& rm -rf /var/lib/apt/lists/*
# Создание рабочей директории
WORKDIR /app
# Копирование requirements и установка зависимостей
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Копирование приложения
# Создаем структуру: /app/app/ для правильных импортов
RUN mkdir -p /app/app
COPY . /app/app/
# main.py остается в /app/app/ для правильных импортов
# Создание директории для логов
RUN mkdir -p logs
# Переменные окружения
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONPATH=/app
ENV TZ=Europe/Moscow
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# Порт приложения
EXPOSE 8000
# Команда запуска
# main.py находится в /app/app/, поэтому используем app.main
# --reload-dir указывает на всю папку app для отслеживания изменений
CMD ["python", "-m", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload", "--reload-dir", "/app/app"]