我们都知道docker有个好处就是可以把项目的环境跟代码一起打包然后到处运行,这样就避免了很多开发测试环境不一致导致的问题了,今天我们就来了解了解docker怎么打包环境和代码的
首先上一期我们通过
docker run -itd -p 19085:80 --name -v ./:/go --privileged=true 1.18.9 /bin/bash
成功的将本地的环境运行起来了,接下来就是在本地开发,开发完成后就开始打包代码了
首先要编写Dockerfile文件
FROM golang:latest #指定镜像,先默认使用dockerhub里的镜像
ENV GO111MODULE=on #设置环境变量
ENV GOPROXY=https://goproxy.io
ENV GOPATH /go
ENV PATH $PATH:$GOPATH/bin
RUN go get github.com/beego/beego/v2 #运行命令这里是在容器里安装指定框架
RUN go get github.com/beego/bee/v2
RUN go get github.com/alibabacloud-go/darabonba-openapi/client
RUN go get github.com/alibabacloud-go/dysmsapi-20170525/v2/client
RUN go get github.com/alibabacloud-go/tea/tea
RUN go get github.com/xuri/excelize/v2
RUN go get gorm.io/gorm
RUN mkdir -p /webapp
ADD . /webapp #把宿主机的代码,拷贝到容器的/webapp 目录下
WORKDIR /webapp #容器内进行目录切换
EXPOSE 80 #打开容器的80端口,用于和宿主机进行映射
CMD cd /webapp && nohup bee run & #在容器启动后,内部自动执行的命令是什么
写好Dockerfile后放在项目根目录,然后
docker build -t crm . #-t 设置镜像名为crm . 当前目录
之后我们可以docker images看一下镜像是否生成了
生成了之后run一下就好了