StarrySkyWorld commited on
Commit
8d57a9b
·
verified ·
1 Parent(s): 4995dbf

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +39 -0
Dockerfile ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # --- 阶段 1: 编译阶段 ---
2
+ FROM golang:1.24-alpine AS builder
3
+
4
+ # 安装编译 CGO 所需的工具以及 git
5
+ RUN apk add --no-cache gcc musl-dev git
6
+
7
+ WORKDIR /src
8
+
9
+ # 克隆仓库 (直接克隆到当前目录)
10
+ RUN git clone https://github.com/1354427059/orchids-api.git .
11
+
12
+ # 下载依赖
13
+ RUN go mod download
14
+
15
+ # 编译程序 (开启 CGO)
16
+ RUN CGO_ENABLED=1 GOOS=linux go build -o /app/server ./cmd/server
17
+
18
+ # --- 阶段 2: 运行阶段 ---
19
+ FROM alpine:latest
20
+
21
+ WORKDIR /app
22
+
23
+ # 安装必要的运行时库
24
+ RUN apk add --no-cache ca-certificates
25
+
26
+ # 从编译阶段拷贝二进制文件
27
+ COPY --from=builder /app/server .
28
+
29
+ # 从编译阶段的源码目录拷贝静态资源和初始化数据
30
+ # 注意:这里路径需指向 builder 阶段的 /src
31
+ COPY --from=builder /src/web ./web
32
+ COPY --from=builder /src/data ./data
33
+
34
+ # 创建调试目录
35
+ RUN mkdir -p /app/debug
36
+
37
+ EXPOSE 3002
38
+
39
+ CMD ["./server"]