准备工作#
- centos 7
- docker>=19.03
- 镜像:
golang:1.22
golang:1.22-alpine
Golang文件#
| package main |
| |
| import ( |
| "fmt" |
| "net/http" |
| ) |
| |
| func handler(w http.ResponseWriter, r *http.Request) { |
| fmt.Fprintf(w, "Hello, World!") |
| } |
| |
| func main() { |
| http.HandleFunc("/", handler) |
| if err := http.ListenAndServe(":8080", nil); err != nil { |
| panic(err) |
| } |
| } |
Dockerfile#
| FROM golang:1.22 as go1 |
| WORKDIR /app |
| COPY . . |
| RUN go mod init demo&&CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . && chmod +x main |
| |
| FROM golang:1.22-alpine as go2 |
| WORKDIR /app |
| COPY --from=go1 /app/main . |
| EXPOSE 8080 |
| CMD [ "./main" ] |
构建镜像#
--platform : 指定平台
-t: 指定tag
| docker buildx build --platform linux/amd64 -t go_demo1:0.1 . |
构建指定阶段镜像#
--target 某一阶段的别名
| docker buildx build --platform linux/amd64 --target go1 -t go_demo1:0.1 . |
启动容器#
| docker run -itd -p 8080:8080 go_demo1:0.1 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2023-07-11 Golang学习笔记-判断