分享
golang 和docker初次搭建
· · 1101 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
https://studygolang.com/articles/12670
参考的这篇文章。踩了几个坑。
这里配上成功的流程:
1. 创建工程
mkdir helloWorldDocker
cd helloWorldDocker
2. 创建main.go文件
package main
import (
"fmt"
"net/http"
)
func main() {
fmt.Println("abc")
http.HandleFunc("/", homePage)
http.HandleFunc("/login", login)
_ = http.ListenAndServe(":80", nil)
}
func homePage(w http.ResponseWriter, r *http.Request) {
fmt.Println("Hello Docker")
}
func login(w http.ResponseWriter, r *http.Request) {
fmt.Println("Login Docker")
}
3 在helloWorldDocker下创建Dockerfile
FROM golang:latest
WORKDIR $GOPATH/src/helloWorldDocker
COPY . $GOPATH/src/helloWorldDocker
RUN go build .
EXPOSE 8080
ENTRYPOINT ["./helloWorldDocker"]
4 返回上级目录
cd ../
5 docker编译你的项目-注意docker的命名不能有大写
docker build -t hellow ./helloWorldDocker
Sending build context to Docker daemon 14.34kB
Step 1/6 : FROM golang:latest
---> 54e71dcafb7c
Step 2/6 : WORKDIR $GOPATH/src/helloWorldDocker
---> Using cache
---> fcf23a94eb82
Step 3/6 : COPY . $GOPATH/src/helloWorldDocker
---> 72aa02c9ebe4
Step 4/6 : RUN go build .
---> Running in 9ff4b85593b2
Removing intermediate container 9ff4b85593b2
---> d8a47e47f37a
Step 5/6 : EXPOSE 8080
---> Running in c41b4f3394c0
Removing intermediate container c41b4f3394c0
---> e8842a313901
Step 6/6 : ENTRYPOINT ["./hellow"]
---> Running in 6e5729ec5078
Removing intermediate container 6e5729ec5078
---> 7c045fb4a075
Successfully built 7c045fb4a075
Successfully tagged hellow:latest
5 docker 上运行项目
docker run -p 8080:8080 hellow
abc
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1101 次点击
上一篇:强烈推荐的go中文标准库,等资料
下一篇:Dockerfile总结
0 回复
暂无回复
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
https://studygolang.com/articles/12670
参考的这篇文章。踩了几个坑。
这里配上成功的流程:
1. 创建工程
mkdir helloWorldDocker
cd helloWorldDocker
2. 创建main.go文件
package main
import (
"fmt"
"net/http"
)
func main() {
fmt.Println("abc")
http.HandleFunc("/", homePage)
http.HandleFunc("/login", login)
_ = http.ListenAndServe(":80", nil)
}
func homePage(w http.ResponseWriter, r *http.Request) {
fmt.Println("Hello Docker")
}
func login(w http.ResponseWriter, r *http.Request) {
fmt.Println("Login Docker")
}
3 在helloWorldDocker下创建Dockerfile
FROM golang:latest
WORKDIR $GOPATH/src/helloWorldDocker
COPY . $GOPATH/src/helloWorldDocker
RUN go build .
EXPOSE 8080
ENTRYPOINT ["./helloWorldDocker"]
4 返回上级目录
cd ../
5 docker编译你的项目-注意docker的命名不能有大写
docker build -t hellow ./helloWorldDocker
Sending build context to Docker daemon 14.34kB
Step 1/6 : FROM golang:latest
---> 54e71dcafb7c
Step 2/6 : WORKDIR $GOPATH/src/helloWorldDocker
---> Using cache
---> fcf23a94eb82
Step 3/6 : COPY . $GOPATH/src/helloWorldDocker
---> 72aa02c9ebe4
Step 4/6 : RUN go build .
---> Running in 9ff4b85593b2
Removing intermediate container 9ff4b85593b2
---> d8a47e47f37a
Step 5/6 : EXPOSE 8080
---> Running in c41b4f3394c0
Removing intermediate container c41b4f3394c0
---> e8842a313901
Step 6/6 : ENTRYPOINT ["./hellow"]
---> Running in 6e5729ec5078
Removing intermediate container 6e5729ec5078
---> 7c045fb4a075
Successfully built 7c045fb4a075
Successfully tagged hellow:latest
5 docker 上运行项目
docker run -p 8080:8080 hellow
abc