go使用docker搭建程序

**

1书写go文件

**
在这里插入图片描述

2、书写go的dockerfile文件

`FROM golang:1.16 as builder

ENV GOOS linux

ENV GOPROXY=https://goproxy.cn

WORKDIR $GOPATH/src/gin-demo

COPY . .

RUN go mod download

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main .

FROM scratch

ENV GIN_MOD=release

WORKDIR /gin-demo

COPY --from=builder /go/src/gin-demo/main .

EXPOSE 9090

ENTRYPOINT [“./main”]`

3、将镜像上传到私域或者是dockerHub里面

docker tag gin-demo:latest 843665303/gin-demo:v1.0

docker push 843665303/gin-demo:v1.0

4、搭建k8s集群

4-1、新建文件namespace.yaml文件
新建

执行命令:

kubectl apply -f namespace.yamlkubectl get ns //查看存在的命名空间kubectl delete namespaces hello // 删除命令

生成命名空间,如果后面的service和deployment都是命名空间,则参数需要增加 -n参数表达式

4-2、生成deployment.yaml文件

deployment

生成deployment,注意apiversion上面的apps不要忘记了

containerPort: 9090 这里暴露的是containers端口,就是访问containers端口从而能够访问到容器指定的端口

kubectl apply -f deployment.yamlkubectl get deployment -n hello//查看deployment,-n表示获取具体的命名空间下kubectl delete deployment hello-world-app -n hello # 删除

4-3、部署service

service内容

kubectl apply -f service.yamlkubectl get svc -n hello //查看servicekubectl get pods -n gin-demo //获取命名空间下一共有多少个pods的在使用

通过访问url:http://127.0.0.1:30001/hello直接访问到服务

犯错记录

1、COPY --from=builde 来自上面的第一个FROM,当时没有注意到

2、gin里面启动带有地址进行启动了,导致一直容器外面访问不到容器内部的http服务。gin.RUN(“localhost:9090”)这样进行启动了3、windows里面的docker启动kubernates比较久可能是网络超时的原因可以通过采用如下是访问如下的链接地址

github地址

欢迎关注我的公众号:程序员技术成长之路
技术简介:涉及java、php、go的知识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值