首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在helm安装之前,将go二进制文件移动到pod中的惯用方法是什么?

在helm安装之前,将go二进制文件移动到pod中的惯用方法是什么?
EN

Stack Overflow用户
提问于 2019-08-14 14:19:19
回答 2查看 249关注 0票数 1

我使用CircleCI构建一个go二进制文件,希望在Helm charts安装的pod中运行。我希望将二进制文件从CircleCI移动到远程集群,以便在pod启动时可用。我知道像ConfigMap或Secrets这样的卷是可以做到的,但我不确定最好的方法是什么。

我曾经使用私有docker注册中心和kubernetes Secrets作为注册中心的凭证,但我不喜欢这个选项。我不想在每次二进制更改时都构建和推送一个新的docker镜像。

代码语言:javascript
运行
复制
version: 2.1
jobs:
  build_and_deploy:
    docker:
      - image: circleci/golang:1.12.7
    steps:
      - checkout
      - run: go get -v -t -d ./...
      - run: go build cmd/main.go
      - run: ...
      - run: helm install

workflows:
  version: 2
  build:
    jobs:
      - build_and_deploy:

每次作业运行时,预期的结果应该是群集上可用的新二进制文件。

EN

回答 2

Stack Overflow用户

发布于 2019-08-14 22:01:06

根据最佳实践-二进制文件应该在您的构建映像执行期间应用-正如上面的社区和best developer practices所提到的:

不要从运行的容器创建镜像-换句话说,不要使用“docker commit”来创建镜像。这种创建图像的方法是不可重现的,应该完全避免。始终使用Dockerfile或任何其他完全可重现的S2I (源到镜像)方法,如果您将其存储在源代码控制存储库(git)中,则可以跟踪Dockerfile的更改。

但是,从另一个角度来看,您可以考虑:

1。直接在群集上构建映像的init contianers

2。带有构建上下文的外部位置的kaniko (gcs bucket git存储库)

3。helm预装钩子,以便使用上述解决方案

4。最后是其他解决方案,如cloud buildcloud build locally

请同时参考"Switching from CircleCI to Google Cloud Build“。如上所述,当docker存储库中的映像更新时,您可以使用keel自动更新您的部署。

如果有帮助,请告诉我。

票数 1
EN

Stack Overflow用户

发布于 2019-08-14 20:21:04

您的CI/CD只需使用该二进制文件构建一个Docker容器即可。然后,您应该将其推送到私有存储库。群集应下载二进制文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57489083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档