Files
ai-media-hub/Dockerfile
AI Assistant 1142af1443
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 2m38s
Fix Docker build error: explicitly set WORKDIR in builder stage and fix binary path
2026-03-12 14:36:14 +09:00

52 lines
1.2 KiB
Docker

# 1. Build Go Backend
FROM golang:1.22-alpine AS builder
# SQLite 및 CGO 빌드에 필요한 패키지 설치
RUN apk add --no-cache gcc musl-dev
WORKDIR /build
# Cache go modules
COPY backend/go.mod backend/go.sum ./
RUN go mod download
COPY backend/ ./
# CGO_ENABLED=1 is required for sqlite3
RUN CGO_ENABLED=1 go build -ldflags="-s -w" -o main main.go
# 2. Final Minimal Image (Python + Go binary + Frontend)
FROM python:3.10-slim
# 파이썬 출력 버퍼링을 비활성화하여 도커 로그에 즉각 표시되도록 설정합니다.
ENV PYTHONUNBUFFERED=1
# Install system dependencies (ffmpeg is required for yt-dlp)
RUN apt-get update && apt-get install -y \
ffmpeg \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install Python dependencies for worker
COPY worker/requirements.txt ./worker/
RUN pip install --no-cache-dir -r worker/requirements.txt
# Copy Go binary from builder
COPY --from=builder /build/main ./main
# Copy worker script
COPY worker/ ./worker/
# Copy frontend
COPY frontend/ ./frontend/
# Ensure directories exist
RUN mkdir -p db downloads
# Expose Go server port
EXPOSE 3000
# Run the Go server command (which will also call the yt-dlp python script when needed)
CMD ["./main"]