一、Docker手工部署GO环境
第一步:基于ubuntu镜像创建容器,并进入容器;
$ docker run -itd --name ubuntu-go ubuntu
$ docker exec -it ubuntu-go /bin/bash
第二步:配置国内源;
root@xxx:~# sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
root@xxx:~# sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
第三步:配置完成后,更新软件源;
root@xxx:~# apt-get update --fix-missing
第四步:安装基础软件;
root@xxx:~# apt-get install gcc libc6-dev git vim lrzsz -y
第五步:安装go软件;
root@xxx:~# apt-get install golang -y
第六步:配置go环境变量;
root@xxx:~# export GOROOT=/usr/lib/go
root@xxx:~# export PATH=$PATH:/usr/lib/go/bin
root@xxx:~# export GOPATH=/root/go
root@xxx:~# export PATH=$GOPATH/bin/:$PATH
第七步:下载beego框架;
root@xxx:~# go get github.com/astaxie/beego
第八步:创建项目目录;
root@xxx:~# mkdir /root/go/src/myTest
第九步:进入myTest目录,创建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()
}
第十步:启动beego;
root@xxx:~# go run test.go
第十一步:启动完成后,打开另外一个终端,查看容器使用网络;
$ docker inspect ubuntu-go
最后通过curl命令进行测试。效果如下所示:
二、Dockerfile构建GO环境
第一步:创建并进入目录;
$ mkdir docker/images/beego
$ cd docker/images/beego
第二步:创建Dockerfile文件,然后拷贝以下内容到文件中;
# 基础镜像
FROM ubuntu
# 镜像作者
MAINTAINER ZhongLiwen 896337156@qq.com
# 修改国内源
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
# 执行命令
RUN apt-get update --fixing-missing
RUN apt-get install gcc libc6-dev git lrzsz -y
# 安装Go环境
RUN apt-get install golang -y
# 配置环境变量
ENV GOROOT=/usr/lib/go
ENV PATH=$PATH:/usr/lib/go/bin
ENV GOPATH=/root/go
ENV PATH=$GOPATH/bin/:$PATH
# 下载项目
RUN go get github.com/astaxie/beego
# 增加文件
COPY test.go /root/go/src/myTest/
# 定制工作目录
WORKDIR /root/go/src/myTest/
# 对外端口
EXPOSE 8080
# 运行beego
ENTRYPOINT ["go","run","test.go"]
第三步:构建镜像;
$ docker build -t ubuntu-beego:v1.0 .
第四步:创建容器;
$ docker run -itd --name beego-test ubuntu-beego:v1.0
第五步:查看容器的IP地址;
$ docker inspect beego-test
启动完成后,执行curl命令访问IP地址,运行效果如下: