From d17604a2c0656a24f6df6d446b4049f349e81279 Mon Sep 17 00:00:00 2001 From: ChenKaiLiuG Date: Sun, 4 Jan 2026 12:36:59 +0000 Subject: [PATCH] Add Dockerfile Signed-off-by: ChenKaiLiuG --- Dockerfile | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..55b37ca --- /dev/null +++ b/Dockerfile @@ -0,0 +1,60 @@ +# 多階段構建 - 編譯階段 +FROM golang:1.22-alpine AS builder + +WORKDIR /build + +# 安装編譯依賴 +RUN apk add --no-cache git bash zip make gcc musl-dev + +# 複製源代碼 +COPY . . + +# 執行編譯腳本 +# 支持通過 --build-arg 指定版本和類型 +ARG VERSION=latest +ARG BUILD_TYPE=community +ARG TARGETARCH=amd64 + +RUN cd build && \ + chmod +x build.sh && \ + ./build.sh linux ${TARGETARCH} ${BUILD_TYPE} + +# ===================================================== +# 運行階段 +FROM alpine:latest + +LABEL maintainer="Your Name" +LABEL description="GoEdge Node - Edge Computing and CDN" + +ENV TZ="Asia/Taipei" +ENV ROOT_DIR=/usr/local/goedge + +# 安装運行時依賴 +RUN apk add --no-cache tzdata ca-certificates bash + +# 從編譯階段複製二進制文件和配置 +COPY --from=builder /build/dist/edge-node ${ROOT_DIR}/edge-node/ + +# 創建數據目錄 +RUN mkdir -p ${ROOT_DIR}/edge-node/{data,logs,configs} && \ + chmod +x ${ROOT_DIR}/edge-node/bin/edge-node + +# 暴露默認端口 +# 7777 - Edge Node HTTP +# 7778 - Edge Node HTTPS +# 8000-9000 - 用戶應用端口範圍 +EXPOSE 7777 7778 8000-9000 + +# 啟動腳本 +RUN echo '#!/bin/sh\n\ +set -e\n\ +\n\ +# 創建必要的目錄\n\ +mkdir -p ${ROOT_DIR}/edge-node/{data,logs,configs}\n\ +\n\ +# 啟動 Edge Node\n\ +exec ${ROOT_DIR}/edge-node/bin/edge-node\n\ +' > /entrypoint.sh && \ +chmod +x /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"]