Ubuntu+docker+docker-compose部署golang项目(源码)
阅读本文的前提是你已经在Ubuntu中正确安装了docker和docker-compose。
查看版本
docker --version
docker-compose --version
编写Dockerfile
进入源码目录,vim可编辑文件,若文件不存在可自动创建文件
cd myProject
vim Dockerfile
Dockerfile内容
FROM golang
// 设置时区
RUN echo "Asia/Shanghai" > /etc/timezone \
&& rm /etc/localtime && dpkg-reconfigure -f noninteractive tzdata
// 设置golang环境变量
ENV GO111MODULE on
ENV CGO_ENABLED 0
ENV GOPROXY https://goproxy.io,direct
// 设置工作目录
WORKDIR /go/src/myProject
// 复制当前目录内容到工作目录
COPY . .
RUN go mod tidy
RUN go build
打包镜像
执行打包命令,等待执行结果
docker build -t myProject-docker:v1 .
通过以下命令可查看镜像列表
docker images
查看列表中是否有自己创建的镜像,至此镜像已创建成功,可使用下面命令启动镜像
docker run -i --name myProject-docker -p 8080:8080 myProject-docker
–name:指定服务名称
-p::前面的是服务对外暴露的端口,:后面的是你自己服务器的实际端口
查看当前正在运行的镜像
docker ps
停止服务
docker stop myProject-docker
编写docker-compose.yaml
docker-compose.yaml内容
version: '2.4'
services:
myProject_port8080:
image: myProject-docker:latest
container_name: myProject_port8080
restart: always
ports:
- "8080:8080"
command:
/go/src/myProject/myProject
启动容器
后台启动容器
docker-compose -f docker-compose.yaml up -d
关闭容器
docker-compose -f docker-compose.yaml down