一.需求:基于docker镜像,手工部署go项目环境

   方案分析:

                   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 

                                  

                

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐