This commit is contained in:
Hua
2024-08-09 21:46:59 +08:00
commit e40ef6b559
9 changed files with 543 additions and 0 deletions

42
Dockerfile Normal file
View File

@ -0,0 +1,42 @@
# 构建阶段
FROM golang:alpine AS builder
WORKDIR /build
# 复制整个项目
COPY . .
# 设置 Go 环境
ENV GO111MODULE=on GOPROXY=https://goproxy.cn,direct
# 构建配置管理服务器
WORKDIR /build/override-web/config
RUN go mod download
RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o config-server .
# 构建原始 override 应用
WORKDIR /build/override-web/override
RUN go mod download
RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o override .
# 最终镜像
FROM alpine:latest
RUN apk --no-cache add ca-certificates
# 从构建阶段复制编译好的二进制文件
COPY --from=builder /build/override-web/config/config-server /usr/local/bin/
COPY --from=builder /build/override-web/override/override /usr/local/bin/
# 复制配置文件和静态文件
COPY override-web/config/web /app/web
COPY config.json.example /app/config.json
WORKDIR /app
VOLUME /app
# 暴露原始应用和配置管理服务器的端口
EXPOSE 8181 9090
# 使用 shell 形式的 CMD这样可以使用环境变量并同时运行两个应用
CMD ["/bin/sh", "-c", "/usr/local/bin/config-server -app /usr/local/bin/override -config /app/config.json & /usr/local/bin/override"]