docker - Kubectl:在 travis ci 上找不到命令
问题描述
我正在尝试使用 Travis CI 部署 kubernetes 集群,但出现以下错误
编辑:
t 的无效参数“myAcc/imgName:”:无效的参考格式
请参阅 docker build --help
./deploy.sh:第 1 行:kubectl:找不到命令
这是我的 travis 配置文件
travis.yml
sudo: required
services:
- docker
env:
global:
- SHA-$(git rev-parse HEAD)
- CLOUDSDK_CORE_DISABLE_PROMPTS=1
before-install:
- openssl aes-256-cbc -K $encrypted_0c35eebf403c_key -iv $encrypted_0c35eebf403c_iv -in service-account.json.enc -out service-account.json -d
- curl https://sdk.cloud.google.com | bash > /dev/null
- source $HOME/google-cloud-sdk/path.bash.inc
- gcloud components update kubectl
- gcloud auth activate-service-account --key-file service-account.json
- gcloud config set project robust-chess-234104
- gcloud config set compute/zone asia-south1-a
- gcloud container clusters get-credentials standard-cluster-1
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
deploy:
provider: script
script: bash ./deploy.sh
on:
branch: master
这是我的部署脚本
deploy.sh
doccker build -t myAcc/imgName:$SHA
docker push myAcc/imgName:$SHA
kubectl apply -k8s
我猜该gcloud components update kubectl
命令不起作用。有任何想法吗?
谢谢 !
解决方案
第一个问题invalid argument "myAcc/imgName:" for t: invalid reference format
是因为变量$SHA
未按预期定义。定义你应该使用的变量=
而不是-
在 SHA 之后存在语法问题,所以它应该是这样的:
- SHA=$(git rev-parse HEAD)
第二个问题与 kubectl 相关,您需要根据文档使用以下命令安装它:
gcloud components install kubectl
更新:
在 Travis-CI 上测试此文件后,我能够找出问题所在。在您的情况下,您应该使用安装之前的步骤,before_install
而不是before-install
这样。
# travis.yml
---
env:
global:
- CLOUDSDK_CORE_DISABLE_PROMPTS=1
before_install:
- curl https://sdk.cloud.google.com | bash > /dev/null
- source $HOME/google-cloud-sdk/path.bash.inc
- gcloud components install kubectl
script: kubectl version
以及构建结果的最后一部分:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.7", GitCommit:"65ecaf0671341311ce6aea0edab46ee69f65d59e", GitTreeState:"clean", BuildDate:"2019-01-24T19:32:00Z", GoVersion:"go1.10.7", Compiler:"gc", Platform:"linux/amd64"}
推荐阅读
- mongodb - 关于如何在猫鼬中编写评论模式的任何想法?
- javascript - Gitlab CI - 在赛普拉斯测试可以运行之前服务器被“杀死”
- python - 我想要以分钟为单位计算的标准偏差
- charts - 在谷歌图表中添加列时如何更改文本颜色
- javascript - 查找出现在检查的网络选项卡 Reactjs 上的 fetch 函数的源文件
- javascript - 移除端口并保留主机
- java - Spring data R2DBC - 连接到多个数据库时未选择自定义转换器
- django - 让 Django ORM 自动获取属性
- java - Firebase“sendSignInLinkToEmail”方法发送一封没有安卓链接的邮件
- reactjs - React Router history.push() 改变了 url 但没有渲染组件内容