31 lines
764 B
Docker
31 lines
764 B
Docker
FROM golang:alpine AS backend-builder
|
|
RUN apk add --no-cache build-base
|
|
WORKDIR /build
|
|
COPY . .
|
|
ENV CGO_ENABLED=1
|
|
RUN go build -ldflags="-s -w" -o bin/server
|
|
|
|
RUN apk add --no-cache upx
|
|
|
|
RUN upx --best --lzma bin/server
|
|
|
|
# 使用更小的 Debian
|
|
FROM debian:bookworm-slim
|
|
# 安装最小运行时依赖
|
|
RUN apt-get update && apt-get install -y \
|
|
ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY --from=backend-builder /build/bin/server /app/server
|
|
COPY static /app/static
|
|
COPY static/*.so /app/
|
|
WORKDIR /app
|
|
# 确保文件存在且有执行权限
|
|
RUN ls -la /app/ && \
|
|
chmod +x /app/server && \
|
|
echo "=== 依赖检查 ===" && \
|
|
ldd /app/server || echo "无法检查依赖"
|
|
|
|
ENV LD_LIBRARY_PATH=/app
|
|
EXPOSE 8080
|
|
RUN ls -a
|
|
CMD ["/app/server"] |