38 lines
901 B
Docker
38 lines
901 B
Docker
FROM golang:latest AS backend-builder
|
|
RUN apt update
|
|
RUN apt install -y build-essential
|
|
|
|
# 安装 OpenCV 开发库和依赖
|
|
RUN apt install -y \
|
|
libopencv-dev \
|
|
libopencv-core-dev \
|
|
libopencv-imgproc-dev \
|
|
libopencv-imgcodecs-dev \
|
|
libopencv-videoio-dev \
|
|
pkg-config
|
|
|
|
WORKDIR /build
|
|
COPY . .
|
|
ENV CGO_ENABLED=1
|
|
RUN go build -ldflags="-s -w" -o bin/server
|
|
|
|
RUN apt install -y upx-ucl
|
|
|
|
RUN upx --best --lzma bin/server
|
|
|
|
# 收集所有 OpenCV 运行时需要的 .so 文件
|
|
RUN mkdir -p /opencv-libs && \
|
|
cp -P /usr/lib/x86_64-linux-gnu/libopencv*.so* /opencv-libs/ 2>/dev/null || true
|
|
|
|
FROM golang:latest
|
|
|
|
# 复制 OpenCV .so 文件到运行环境
|
|
COPY --from=backend-builder /opencv-libs/* /usr/lib/x86_64-linux-gnu/
|
|
|
|
COPY --from=backend-builder /build/bin/server /app/server
|
|
#COPY static /app/static
|
|
#COPY static/*.so /app/
|
|
WORKDIR /app
|
|
EXPOSE 8080
|
|
RUN ls -a
|
|
CMD ["./server"] |