gitlab - lftp 在 gitlab-ci 中运行失败,返回 shell not found
问题描述
当我使用此 .gitlab-ci.yml 配置将示例文件上传到我的 ftp 时:
variables:
FTP_HOST: ******
FTP_PASSWORD: *******
FTP_USERNAME: *******
stages:
- build
- test
- deploy
samplejob:
stage: build
script:
- mkdir sample
- echo 'lorem ipsum' > sample/s1.txt
artifacts:
expire_in: 2d
paths:
- sample/
upload:
stage: deploy
#image: mwienk/docker-lftp:latest
image: alpacadb/docker-lftp:latest
script:
- lftp -v
- lftp -e "set ftp:ssl-allow false; mirror -eRnv sample deploy-test; exit;" -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST
结果是shell not found
错误。使用 gitlab 11.0.3-ee 和 gitlab-runner 11.0.0
这是作业终端输出:
Running with gitlab-runner 11.0.0 (5396d320)
on build.dev.*****.com 75df7aee
Using Docker executor with image alpacadb/docker-lftp:latest ...
Pulling docker image alpacadb/docker-lftp:latest ...
Using docker image sha256:49f8f3e772415878d19828d9d402699d5d18f550220877fa21ebe64f87fbb36a for alpacadb/docker-lftp:latest ...
Running on runner-******-project-60-concurrent-0 via build.dev.*****.com...
Fetching changes...
Removing sample/
HEAD is now at 925653b Update .gitlab-ci.yml
Checking out 925653b9 as master...
Skipping Git submodules setup
Downloading artifacts for samplejob (258)...
Downloading artifacts from coordinator... ok id=258 responseStatus=200 OK token=ZUW7pcbQ
open: invalid option -- 'c'
Usage: lftp [-e cmd] [-p port] [-u user[,pass]] <host|url>
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `else'.
shell not found
open: invalid option -- 'c'
Usage: lftp [-e cmd] [-p port] [-u user[,pass]] <host|url>
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `elif'.
Unknown command `then'.
Unknown command `exec'.
Unknown command `else'.
shell not found
ERROR: Job failed: exit code 1
这个配置有什么问题?
解决方案
我解决了使用image: mwienk/docker-lftp:latest
而不是image: alpacadb/docker-lftp:latest
.
推荐阅读
- google-cloud-run - 错误:(gcloud.run.services.update)PERMISSION_DENIED:资源'namespaces/*/services/test-repo'的权限'run.services.get'被拒绝
- python - 一般语法python问题:从类型语言到非类型语言
- push-notification - 世博推送通知设计
- masstransit - 批量消费者的 Masstransit 错误处理
- next.js - next.js 如何在多个布局中使用上下文管理全局状态
- wpf - WPF 应用程序可以托管在与 UI 线程分开的线程上吗?
- javascript - 格式化输入值
- wordpress - 如何验证客户只能在 Woocommerce 中购买单一类型期间的一个订阅?
- python - Python、django 按 kwargs 或列表过滤,包含输出
- oracle - 是否可以使用 Oracle 创建 websocket 服务器?