Go程序制作成Docker镜像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 要将自己编写的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镜像来运行编译好的二进制文件。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)