init
This commit is contained in:
42
Dockerfile
Normal file
42
Dockerfile
Normal 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"]
|
Reference in New Issue
Block a user