Создавал с нуля образы для Docker
Python
Middle
Без компании
Создавал с нуля образы для Docker
Ответы
Создание Docker-образов с нуля включает написание Dockerfile и сборку образа. Вот ключевые моменты:
- **Dockerfile** - инструкция для сборки:
```
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
```
- **Сборка образа**:
```
docker build -t myapp:latest .
```
- **Оптимизация**:
- Использование многоэтапной сборки для уменьшения размера
- .dockerignore для исключения ненужных файлов
- Минимизация слоев (объединение RUN команд)
Пример многоэтапной сборки:
```
# Build stage
FROM python:3.9 as builder
COPY requirements.txt .
RUN pip install --user -r requirements.txt
# Runtime stage
FROM python:3.9-slim
COPY --from=builder /root/.local /root/.local
COPY . .
CMD ["python", "app.py"]
```
Ключевые практики:
- Использование официальных базовых образов
- Минимизация привилегий (USER)
- Явное указание версий
- Логирование в stdout/stderr