Files
DevOpsLab/app/Dockerfile
Сергей Антропов 1fbf9185a2 feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile
- Добавлена колонка 'Тип' во все таблицы истории сборок
- Для push операций отображается registry вместо платформ
- Сохранение пользователя при создании push лога
- Исправлена ошибка с logger в push_docker_image endpoint
- Улучшено отображение истории сборок с визуальными индикаторами
2026-02-15 22:59:02 +03:00

62 lines
2.3 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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"]