在docker上部署golang的web demo
2021-04-12 本文已影响0人
DOB_8199
1. main.go的代码如下:
2. 运行以上demo,获得一个main.exe,代码如下:
webapp> go build main.go
(在mac下如果直接执行代码为:./main)
3. 在Dockerfile配置文件中指定步骤
关于Dockerfile命令,有一篇很详细的解释:https://my.oschina.net/u/3829444/blog/1860849
4. 在项目目录下,执行下面的命令创建镜像,并指定镜像名称为webapp:
docker build.-t webapp
中途出现了 go: go.mod file not found in current directory or any parent directory; see 'go help modules'的问题
解决方法:新建一个空的go.mod:
go mod init
添加模块依赖和sums:
go mod tidy
再重新执行:docker build . -t webapp
5. 查看现在的镜像
docker images,存在webapp,即成功
6. 执行下面的命令来运行镜像
docker run -p 8888:8888 webapp
对上述代码的解释:标志位-p用来定义端口绑定。由于容器中的应用程序在端口8888上运行,我们将其绑定到主机端口也是8888。如果要绑定到另一个端口,则可以使用-p $HOST_PORT:8888。例如-p 5000:8888。
7. 测试web程序是否工作
打开浏览器输入http://127.0.0.1:8888,出现我们事先定义的相应的内容