想要容器化原因跟[Day 19] Oops!gRPC - Protoc 容器化實作的原因一樣,主要是想幫同伴們減去安裝的成本,以及之後在CI/CD的時候可以直接透過build好的image操作,避免使用helm
時遇到的版本差異問題。
helm3.dockerfile
FROM google/cloud-sdk:latest
RUN apt-get update && apt-get install vim wget -y
RUN wget -q -O helm3.tar.gz https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gz
RUN tar -zxvf helm3.tar.gz && mv linux-amd64/helm /usr/local/bin/helm
docker build
docker build --no-cache --pull --force-rm -t rain123473/helm:v3.2.3 -f helm3.dockerfile .
推到你的倉庫
docker push rain123473/helm:v3.2.3
kind: pipeline
type: docker
name: helm_ops
steps:
- name: helm_upgrade_site
when:
branch: master
image: rain123473/helm:v3.2.3
commands:
- gcloud auth activate-service-account --key-file ${your_key}
- gcloud container clusters get-credentials ${your_cluster info}
- helm upgrade
docker run -v $(pwd):/go/src/app -w /go/src/app rain123473/helm:latest sh -c $command
example:
透過容器使用Helm幫你建立helm release reop files
docker run -v $(pwd):/go/src/app -w /go/src/app rain123473/helm:latest sh -c 'helm create ithome-2020'
我們將helm
容器化這樣能使用這個映像檔進行版本控制,也方便夥伴們使用helm