Golang在Linux上的容器化实践主要基于Docker,流程如下:
COPY
复制代码,RUN go build
编译二进制文件,EXPOSE
暴露端口,CMD
指定启动命令。docker build -t 镜像名 .
构建镜像。docker run -p 主机端口:容器端口 镜像名
运行容器。示例Dockerfile(多阶段构建):
# 构建阶段
FROM golang:1.21 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o myapp
# 运行阶段
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/myapp .
EXPOSE 8080
CMD ["./myapp"]
[2,3,7]