From bfb1097bde8c230cbdebdd694a9419bbfcd7bdaf Mon Sep 17 00:00:00 2001 From: xiwangly2 <1334850101@qq.com> Date: Fri, 22 Sep 2023 16:18:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BF=AE=E5=A4=8D=20Docker?= =?UTF-8?q?=20=E6=9E=84=E5=BB=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_docker_image.yml | 2 +- Dockerfile | 25 +++++++++++++++--------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_docker_image.yml b/.github/workflows/build_docker_image.yml index 56a18c3..5e38620 100644 --- a/.github/workflows/build_docker_image.yml +++ b/.github/workflows/build_docker_image.yml @@ -77,4 +77,4 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/ppc64le,linux/s390x + platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x diff --git a/Dockerfile b/Dockerfile index 155210d..6cd6956 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,33 @@ # 阶段一:构建阶段 -FROM golang:1.21 AS builder +FROM golang:1.21.1-alpine3.18 AS builder -# 设置工作目录为 /app -WORKDIR /app +# 安装 UPX 压缩工具 +RUN apk --no-cache add curl xz && \ + curl -L -o upx.tar.xz https://github.com/upx/upx/releases/latest/download/upx-4.1.0-amd64_linux.tar.xz && \ + tar -xJf upx.tar.xz && \ + mv upx-*-amd64_linux/upx /usr/local/bin/ && \ + rm -rf upx.tar.xz upx-* + +# 设置工作目录 +WORKDIR /build # 复制Go程序文件到容器中 COPY . . # 构建Go程序 -RUN go build -o "connect_jxyy_network" +RUN go build -o connect_jxyy_network + +# 压缩可执行文件 +RUN upx -9 connect_jxyy_network # 阶段二:运行阶段 FROM alpine:latest -# 设置工作目录为 /app +# 设置工作目录 WORKDIR /app # 从第一阶段中复制生成的可执行文件到当前容器 -COPY --from=builder "/app/connect_jxyy_network" "/app/connect_jxyy_network" - -# 暴露容器的端口号 -EXPOSE 8080 +COPY --from=builder /build/connect_jxyy_network /app/connect_jxyy_network # 定义启动容器时运行的命令 CMD ["/app/connect_jxyy_network"]