gitlab ci/cd错误:作业失败:chmod og上的退出代码1 = $ stage_id_rsa
这是我的ci.yml,
deploy-stage:
stage: deploy
image: alpine:latest
script:
- chmod og= $STAGE_ID_RSA
- apk update && apk add openssh-client
- ssh -i $STAGE_ID_RSA -o StrictHostKeyChecking=no $STAGE_SERVER_USER@$STAGE_SERVER_IP "docker stop $CI_PROJECT_NAME || true"
- ssh -i $STAGE_ID_RSA -o StrictHostKeyChecking=no $STAGE_SERVER_USER@$STAGE_SERVER_IP "docker rm $CI_PROJECT_NAME || true"
- ssh -i $STAGE_ID_RSA -o StrictHostKeyChecking=no $STAGE_SERVER_USER@$STAGE_SERVER_IP "docker image rm $CI_REGISTRY_IMAGE:latest || true"
- ssh -i $STAGE_ID_RSA -o StrictHostKeyChecking=no $STAGE_SERVER_USER@$STAGE_SERVER_IP "docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY"
- ssh -i $STAGE_ID_RSA -o StrictHostKeyChecking=no $STAGE_SERVER_USER@$STAGE_SERVER_IP "docker pull $CI_REGISTRY_IMAGE:latest"
- ssh -i $STAGE_ID_RSA -o StrictHostKeyChecking=no $STAGE_SERVER_USER@$STAGE_SERVER_IP "docker run -d --restart unless-stopped --name $CI_PROJECT_NAME -p 8882:4000 -e "variableData=Docker-Run-Command" $CI_REGISTRY_IMAGE:latest"
我会得到这个错误:
BusyBox v1.35.0 (2022-05-09 17:27:12 UTC) multi-call binary.
Usage: chmod [-Rcvf] MODE[,MODE]... FILE...
MODE is octal number (bit pattern sstrwxrwxrwx) or [ugoa]{+|-|=}[rwxXst]
-R Recurse
-c List changed files
-v Verbose
-f Hide errors
Cleaning up project directory and file based variables
00:00
ERROR: Job failed: exit code 1
我的变量:
https://i.sstatic。 net/zegmz.png
我输入 stage> stage_id_rsa
值的断裂结束
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,您可以使用
chmod og = - $ stage_id_rsa
来确保CHMOD将 not 考虑$ stage_id_rsa
as An选项,但是参数。第二,
chmod [options] [ugoa…] [ - +=] perms…[,…]文件...
表示chmod
适用于 file < /em>。如果
$ stage_id_rsa
代表A value ,那是行不通的。您需要将其内容重定向到文件。
但是,我确实看到
在这里,就像您在
stage_id_id_rsa
.gitlab-ci.yml
,,但但使用kroniak/ssh-client
而不是alpine:最新
。chmod
alpine:最新
可能不像chmod
在更传统的图像中。请参阅“ linux commands in Alpine Docker Image Image
+755
Invalid Mode ”。这很可能是您的问题。
First, you can use
chmod og= -- $STAGE_ID_RSA
to make sure chmod will not consider$STAGE_ID_RSA
as an option, but a parameter.Second,
chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...
means thechmod
applies to a file.If
$STAGE_ID_RSA
represents a value, that would not work.You would need to redirect its content to a file.
Yet, I do see
STAGE_ID_RSA
here, used as you do in.gitlab-ci.yml
, but using thekroniak/ssh-client
rather thanalpine:latest
.The
chmod
inalpine:latest
might not behave like achmod
in a more traditional image.See "Linux commands in Alpine docker image
+755
invalid mode".That is most likely your issue.