Go程序制作成Docker镜像

要将自己编写的Go程序制作成Docker镜像,你需要创建一个Dockerfile,然后使用Docker命令构建镜像。以下是一个基本的示例:

创建一个名为Dockerfile的文件,并添加以下内容:

# 使用官方Go镜像作为构建环境
FROM golang:1.18-alpine AS builder
 
# 设置工作目录
WORKDIR /app
 
# 复制go模块依赖
COPY go.mod .
COPY go.sum .
RUN go mod download
 
# 复制源代码
COPY . .
 
# 编译Go程序,生成静态链接的二进制文件
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp .
 
# 创建运行Go程序的最小镜像
FROM alpine
 
# 将编译好的二进制文件复制到最终镜像中
COPY --from=builder /app/myapp /myapp
 
# 设置容器启动时执行的命令
ENTRYPOINT ["/myapp"]
将此Dockerfile放在你的Go项目目录中。

在包含Dockerfile的目录中,运行以下命令来构建Docker镜像:

docker build -t mygoapp:latest .
构建完成后,运行以下命令来启动容器:

docker run --name mygoapp -d -p 8080:8080 mygoapp:latest
确保你的Go程序有一个main包,并且有一个入口函数main()。这个Dockerfile使用了多阶段构建,首先使用Go的官方镜像来编译你的Go程序,然后创建一个最小的Alpine Linux镜像来运行编译好的二进制文件。

  

posted @ 2024-05-17 15:56  zhaoguanhao  阅读(41)  评论(0编辑  收藏  举报