feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile
- Добавлена колонка 'Тип' во все таблицы истории сборок - Для push операций отображается registry вместо платформ - Сохранение пользователя при создании push лога - Исправлена ошибка с logger в push_docker_image endpoint - Улучшено отображение истории сборок с визуальными индикаторами
This commit is contained in:
61
app/Dockerfile
Normal file
61
app/Dockerfile
Normal 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"]
|
||||
Reference in New Issue
Block a user