Files
play-life/Dockerfile
poignatov e2059ef555
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m5s
feat: добавлено автозаполнение полей wishlist из ссылки (v3.9.0)
- Добавлен эндпоинт /api/wishlist/metadata для извлечения метаданных из URL
- Реализовано извлечение Open Graph тегов (title, image, description)
- Добавлена кнопка Pull для ручной загрузки информации из ссылки
- Автоматическое заполнение полей: название, цена, картинка
- Обновлена версия до 3.9.0
2026-01-11 21:12:26 +03:00

67 lines
2.2 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.
# Multi-stage build для единого образа frontend + backend
# Stage 1: Build Frontend
FROM node:20-alpine AS frontend-builder
WORKDIR /app/frontend
COPY play-life-web/package*.json ./
RUN npm ci
# Копируем исходники (node_modules исключены через .dockerignore)
COPY play-life-web/ .
RUN npm run build
# Stage 2: Build Backend
FROM golang:1.21-alpine AS backend-builder
WORKDIR /app/backend
COPY play-life-backend/go.mod play-life-backend/go.sum ./
RUN go mod download
COPY play-life-backend/ .
RUN go mod tidy
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .
# Stage 3: Final image
FROM alpine:latest
# Устанавливаем необходимые пакеты
# tzdata — данные о часовых поясах для корректной работы планировщика
RUN apk --no-cache add \
ca-certificates \
nginx \
supervisor \
curl \
tzdata
# Создаем директории
WORKDIR /app
# Создаем директорию для загруженных файлов
RUN mkdir -p /app/uploads/wishlist && \
chmod 755 /app/uploads
# Копируем собранный frontend
COPY --from=frontend-builder /app/frontend/dist /usr/share/nginx/html
# Копируем собранный backend
COPY --from=backend-builder /app/backend/main /app/backend/main
COPY play-life-backend/admin.html /app/backend/admin.html
# Копируем файл версии
COPY VERSION /app/VERSION
# Копируем конфигурацию nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY nginx-unified.conf /etc/nginx/conf.d/default.conf
# Копируем конфигурацию supervisor для запуска backend
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# Создаем директории для логов
RUN mkdir -p /var/log/supervisor && \
mkdir -p /var/log/nginx && \
mkdir -p /var/run
# Открываем порт 80
EXPOSE 80
# Запускаем supervisor, который запустит nginx и backend
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]