在基础docker镜像部署go开发环境
-
docker pull ubuntu //拉取ubuntu最新image
-
docker run -it ubuntu bash //交互式进入容器
-
官网下载go tar包 https://golang.google.cn/doc/install
-
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz
-
echo -e “export GO111MODULE=on\nexport GOPROXY=https://goproxy.cn,direct\nexport PATH=$PATH:/usr/local/go/bin” >> ~/.bashrc
保存工作环境
- 在另一个终端外执行 docker commit -m “first docker” -a “test1”(自定义) f60ec72c8729(容器编号) ubuntu1(自定义)
在go项目所在目录编写Dockerfile,make_image.sh,run_image.sh文件
$ cat Dockerfile
FROM ubuntu-go #基础镜像文件
MAINTAINER Mamahh #维护人员姓名
WORKDIR /upload #工作目录,对应docker环境目录
ADD * ./ #拷贝文件到upload
ADD static /upload/static #**注意:拷贝目录需要在被拷贝路径添加目录名称**
ADD tmpfile /upload/tmpfile
RUN /usr/local/go/bin/go mod download
RUN /usr/local/go/bin/go build -o main main.go
EXPOSE 8080 #暴露8080端口
CMD ["./main"] #运行程序
$ cat make_image.sh
docker build -t mamahh-go(新镜像名) .
$ cat run_image.sh
docker run -p 8080:8080 mamahh-go
!!!注意:为了保证docker端口被重置,main.go路由启动时候不要指定端口,直接在Dockerfile的EXPOSE定义即可