(最新2020)Golang 使用Dockerfile 打包部署到 docker

部署前提:

 1. 宿主机已经安装好了 go 配置环境  因为 我是linux 编译的golang代码 不是 已经编译好的二进制部署的
 2. 当然 你也可以 直接二进制打包到docker里部署 其步骤差不多是一样的
 3. 宿主机已经安装好了docker

下面是 Dockerfile 的配置:
Dockerfile 放在 你golang项目的根目录
就像这样
在这里插入图片描述

Dockerfile 代码:

FROM golang:alpine

# 为我们的镜像设置必要的环境变量
ENV GO111MODULE=on \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64 \
	GOPROXY="https://goproxy.cn,direct"
	
# 移动到工作目录:/home/www/goWebBlog 这个目录 是你项目代码 放在linux上  
# 这是我的代码跟目录 
# 你们得修改成自己的
WORKDIR /home/www/goWebBlog

# 将代码复制到容器中
COPY . .

# 将我们的代码编译成二进制可执行文件  可执行文件名为 app
RUN go build -o app .

# 移动到用于存放生成的二进制文件的 /dist 目录
WORKDIR /dist

# 将二进制文件从 /home/www/goWebBlog 目录复制到这里
RUN cp /home/www/goWebBlog/app .
# 在容器目录 /dist 创建一个目录 为src
RUN mkdir src .
# 在容器目录 把宿主机的静态资源文件 拷贝到 容器/dist/src目录下
# 这个步骤可以略  因为项目是引用到了 外部静态资源
RUN cp -r /home/www/goWebBlog/src/static ./src/
# 声明服务端口
EXPOSE 9090

# 启动容器时运行的命令
CMD ["/dist/app"]
  • Dockerfile 写好了以后 记得 放在项目的 根目录 说白了 就跟 main.go 入口 同级 上面有截图
  • 接下来 打包镜像
  • 在目录/home/www/goWebBlog下 执行下面的命令
  • 记得下面这个点 . 有个空格 它会自动 寻找一个名为Dockerfile 的文件
  • 当然给容器起名字可以随意 如果你的容器 需要上传到 dockerhub 也就是公有云
  • 则必须填写自己的账户名 自己去dockerhub注册账号
docker build -t  (建议写你的dockerhub的账户名)/(这里容器的名字) .

接着在容器跑这个项目

docker run -itd -p 9090:9090 (你上面填写的dockerhub的账户名)/(这里容器的名字)

这里是在容器跑这个项目的一些参数建议
–name 这个会在docker container 的 name 取你填写的名字
如果不给 那么docker container 会随机取一个名字

-d后台运行
-p 指定端口号
-memory给容器指定内存大小
--cpu-shares int  指定cpu核心  
--name 给这个continer起个名字
--network none 指定容器网络状态 这里none是指 跟外界网络根本不通  host是指跟宿主机通信
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值