要使这个过程自动化,我们将编辑 Dockerfile 并安装 Gin 将其作为入口命令来执行。我们将开放 3030 端口(Gin 代理),而不是 8080。 Gin 代理将转发流量到 web 程序的 8080 端口。
root@demohost:~/web-app# vim.tiny Dockerfile
# 得到最新的 golang docker 镜像
FROM golang:latest
# 在容器内部创建一个目录来存储我们的 web 应用,接着使它称为工作目录。
RUN mkdir -p /go/src/web-app
WORKDIR /go/src/web-app
# 复制 web 程序到容器中
COPY . /go/src/web-app
# 下载并安装第三方依赖到容器中
RUN go get github.com/codegangsta/gin
RUN go-wrapper download
RUN go-wrapper install
# 设置 PORT 环境变量
ENV PORT 8080
# 给主机暴露 8080 端口,这样外部网络可以访问你的应用
EXPOSE 3030
# 启动容器时运行 Gin
CMD gin run
# 告诉 Docker 启动容器运行的命令
CMD ["go-wrapper", "run"]现在构建镜像并启动容器:
root@demohost:~/web-app# docker build --rm -t web-app .我们会在当前 web 程序的根目录下运行 docker,并通过暴露的 3030 端口链接 CWD (当前工作目录)到容器中的应用目录下。
root@demohost:~/web-app# docker run -p 3030:3030 -v `pwd`:/go/src/web-app –name=”test” -d web-app
打开 http://localhost:3030/World, 你就能看到你的 web 程序了。现在如果你改变了任何代码,会在浏览器刷新后反映在你的浏览器中。
总结
就是这样,我们的 Go web 应用已经运行在 Ubuntu 16.04 Docker 容器中运行了!你可以通过使用 Go 框架来快速开发 API、网络应用和后端服务,从而扩展当前的网络应用。
您可能感兴趣的文章:linux下使用Docker和OSS轻松搭建ownCloud专属网盘(网盘关闭不用怕)在docker中部署tomcat并且部署java应用程序的步骤详解在Docker上开始部署Python应用的教程在Docker快速部署Node.js应用的详细步骤Ubuntu Docker 的安装部署及简单应用使用Docker部署 spring-boot maven应用的方法使用Docker部署Spring Boot的应用示例Docker实践–部署Nodejs应用.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法Docker Cloud实现部署应用操作详解










