为了修改方便,所以使用了 beego 的非打包部署,并且由于服务器上部署了 docker,所以 beego 、bee、mysql 扩展在创建 image 的时候就可以换创建上去。
beego 的整个目录如下:
–// 根目录
— bin
— pkg
— src
—- github.com
—- goweb // beego 创建的目录
—- Dockeffile
– ……
首先在 在goweb同级下创建Dockerfile文件,内容如下:
## 载入最新的 golang
FROM golang
## 定义环境变量
ENV GOROOT=/usr/local/go
ENV GOPATH=/www/go/
ENV PATH=$GOPATH/bin/:$PATH
## 首先安装 beego 和 bee 工具和 mysql 扩展
RUN go get github.com/astaxie/beego && go get github.com/beego/bee && go get github.com/go-sql-driver/mysql
## 复制Dockerfile 同目录的所有文件到docker 中的指定位置
COPY . /www/go/src/goweb/
## 设置项目目录
WORKDIR /www/go/src/goweb
## 开放 8080 端口
EXPOSE 8080
## 启动执行 bee run 命令
CMD [“bee”, “run”]
然后开始创建 image ,build 的时候是按照 dockerfile 里面的有效行执行的,所以注意 dockerfile 里面每行的顺序,否则后面可能会报错:
## 生成 名称为 goweb 的image 文件
docker image build -t goweb .
启动 docker
## 创建 docker 并命名 docker 为 goweb,
## 映射宿主机的 8080 到 docker 的 8080
## 设置 docker 的 ip 地址
## 映射宿主机的 /webroot/www/go/goweb 到 docker 下的/www/go/src/goweb
docker run -d –name goweb -p 8080:8080 -v /webroot/www/go/goweb:/www/go/src/goweb goweb
最后 docker start goweb 即可。
另外需要注意的是,bin目录要给读写权限
然后进行测试:http://xxx.xxx.xxx.xxx:8080
如需转载请注明: 转载自26点的博客
本文链接地址: docker 下 beego 的 web 项目非打包部署
转载请注明:26点的博客 » docker 下 beego 的 web 项目非打包部署