touch Dockerfile
docker search centos
docker pull cent
docker images
复制代码
# 打包依赖阶段使用golang做为基础镜像
FROM golang:1.16 as builder
# 启用go module
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct
WORKDIR /app
COPY . .
# 指定OS等,并go build
RUN GOOS=linux GOARCH=amd64 go build .
# 因为我不止依赖二进制文件,还依赖views文件夹下的html文件还有assets文件夹下的一些静态文件
# 因此我将这些文件放到了publish文件夹
#RUN mkdir publish && cp toc-generator publish && \
# cp -r views publish && cp -r assets publish
# 运行阶段指定scratch做为基础镜像
FROM alpine
LABEL maintainer="xuehu96@vip.qq.com"
LABEL version="1.0"
LABEL description="TTTT EEEE SSS T"
WORKDIR /app
# 将上一个阶段publish文件夹下的全部文件复制进来
COPY --from=builder /app .
# 指定运行时环境变量
#ENV GIN_MODE=release \
# PORT=80
EXPOSE 12345
ENTRYPOINT ["./main"]
复制代码
sudo docker build -t dockgo .
#测试
docker run -d p:12345:12345 dockgo
sudo docker run -d -p 12345:12345 dockgo
sudo docker run -it -p 12345:12345 dockgo
复制代码
格式:sudo docker save -o dockergo.tar dockgo
html
sudo docker image rm 9e37e0dbdd5clinux
sudo docker load < tar 包所在路径golang
docker rm $(docker ps -aq)
复制代码