42 lines
999 B
Docker
42 lines
999 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
|
|
|
|
# 自动收集二进制文件依赖的所有 .so 文件
|
|
RUN mkdir -p /deps/libs && \
|
|
ldd bin/server | grep "=> /" | awk '{print $3}' | while read lib; do \
|
|
if [ -f "$lib" ]; then \
|
|
cp -L "$lib" /deps/libs/ 2>/dev/null || true; \
|
|
fi \
|
|
done
|
|
|
|
FROM golang:latest
|
|
|
|
# 复制所有依赖的 .so 文件
|
|
COPY --from=backend-builder /deps/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"] |