主旨就是先拉代码,再删旧容器和镜像,再起Dockerfile的容器并执行出go的二进制文件,再运行
Dockerfile文件如下
FROM golang:alpine
# 为我们的镜像设置必要的环境变量
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64
# 移动到工作目录:/build
WORKDIR /build
# 将代码复制到容器中
COPY ./gin-service .
# 将我们的代码编译成二进制可执行文件app
RUN go build -o app .
# 移动到用于存放生成的二进制文件的 /dist 目录
#WORKDIR /app
#RUN apk add bash
# 将二进制文件从 /build 目录复制到这里
#COPY ./main-dev .
#ADD ./main-dev $WORKDIR/main-dev
#RUN chmod +x $WORKDIR/main-dev
# 声明服务端口
EXPOSE 13001
# 启动容器时运行的命令
#CMD ["/app/main-dev"]
#ENTRYPOINT ["/build/app"]
step.sh文件如下
#!/bin/bash
git pull
docker stop go-container
docker rm go-container
docker rmi go-image
go build -o main-dev
docker build . -t go-image
docker run -dit --name go-container --privileged=true -p 13001:13001 go-image
ps:中间遇到只要拷贝二进制文件到容器,然后到容器里面就找不到这个文件,我的项目简单就先用本地go环境了
标签:部署,app,dev,build,go,docker,main,Dockerfile From: https://www.cnblogs.com/warrenwt/p/18220637