方案分析:
1.docker环境部署
2.go环境部署
3.go项目部署
4.测试
1.docker环境配置
1.1 获取一个ubuntu的模板文件
(1)进入模板镜像网站https://download.openvz.org/template/precreated/
(2)找到ubuntu模板 ubuntu-16.04-x86_64.tar.gz(178M)
(3)cat ubuntu-16.04-x86_64.tar.gz | docker import - ubuntu-min
1.2 启动docker容器,容器名叫go-test,并将这个容器中的datashare目录挂载到宿主机的/home/sxf/ubuntu-min/目录下
docker run -itd --name go-test -v /home/sxf/ubuntu-min/:/datashare ubuntu-min /bin/bash
1.3 进入容器
docker exec -it go-test /bin/bash
2.go环境部署
2.1 基础环境配置,配置国内源
sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
2.2 更新软件源,安装基本软件
apt-get update
apt-get install gcc libc6-dev git vim lrzsz -y
2.3 安装go语言软件,下载go1.10.linux-amd64.tar.gz拷贝到容器中解压
tar -C /usr/local -zxf go1.10.linux-amd64.tar.gz
PS:(或者直接通过共享目录把宿主机的go软件包传进容器中)
2.4 配置go环境变量
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/root/go
export PATH=$PATH:$GOPATH/bin
2.5 查看go环境变量是否设置成功
3.go项目部署
3.1 获取beego代码
go get github.com/astaxie/beego
3.2 创建项目目录
mkdir /root/go/src/myTest
cd /root/go/src/myTest
3.3 创建一个测试文件test.go(vim test.go),打开文件输入下面内容:
package main
import "github.com/astaxie/beego"
type MainController struct {
beego.Controller
}
func(this *MainController) Get() {
this.Ctx.WriteString("hello world\n")
}
func main() {
beego.Router("/",&MainController{})
beego.Run()
}
3.4 运行该文件
go run test.go
可以看到监听在8080端口,这是beego默认的监听端口
4.测试
4.1 新开启一个终端,输入docker inspect go-test 查看这个容器的ip地址:
4.2 如上图可以看到go-test这个容器的ip地址为172.17.0.2,我们打开浏览器输入172.17.0.2:8080