Files
media/Dockerfile
T

54 lines
1.6 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.
# 阶段1: 构建
FROM golang:alpine AS builder
RUN apk add --no-cache git ca-certificates tzdata
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.cn,direct
ENV CGO_ENABLED=0
ENV GOTOOLCHAIN=auto
WORKDIR /build
COPY . .
RUN go mod download && go mod tidy
RUN go build -ldflags="-s -w" -o main ./main.go
# 阶段2: 运行时(预装 FFmpeg + Python3 + PySceneDetect + Node.js + HyperFrames
FROM alpine:3.19
# nodejs/npm 在 community 仓库,需启用
# 使用阿里云镜像加速
RUN sed -i 's|dl-cdn.alpinelinux.org|mirrors.aliyun.com|g' /etc/apk/repositories \
&& echo "https://mirrors.aliyun.com/alpine/v3.19/community" >> /etc/apk/repositories \
&& apk add --no-cache ca-certificates tzdata ffmpeg python3 py3-pip nodejs npm \
gcc musl-dev python3-dev linux-headers
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 预装 PySceneDetectopencv-headless 无需 GUI 依赖)
# 使用阿里云 PyPI 镜像加速
RUN pip3 install --break-system-packages -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com scenedetect[opencv-headless,ffmpeg]
# 验证 PySceneDetect 安装
RUN python3 -c "import scenedetect; print(f'scenedetect {scenedetect.__version__} installed')"
# 预装 HyperFrames(全局安装)
# 使用 npmmirror 镜像加速
RUN npm install -g hyperframes --registry=https://registry.npmmirror.com/
WORKDIR /app
# 复制二进制和运行时必需的文件
COPY --from=builder /build/main .
COPY --from=builder /build/config.yml .
EXPOSE 3010
CMD ["./main"]