GitLab FTP部署 - 作业失败:执行时间超过1h0m0秒

时间:2018-03-11 18:06:01

标签: gitlab lftp

我是GitLab和CI的新手,但我希望通过lftp从GitLab repo部署到FTP

它转到lftp并且仍然运行1小时然后返回:

ERROR: Job failed: execution took longer than 1h0m0s seconds

.gitlab-ci.yml

...

deploy:
  stage: deploy
  image: mwienk/docker-lftp:latest
  only:
    - dev
  script:
    - lftp -c "set ftp:ssl-allow no; open -u $FTP_USERNAME,$FTP_PASSWORD -p $FTP_PORT $FTP_HOST; mirror -Rev ./ gitlab  --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"

...

也尝试了

script:
  - apt-get update -qq && apt-get install -y -qq lftp

它的SFTP协议,也许lftp要求背景上的东西而不是继续?它不会在FTP上传任何内容。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用SFTP,您应该try with port 22并为主机添加前缀,如下所示:sftp://example.com

lftp调试命令和mirror命令的--verbose标志也是一个非常有用的工具。只需将其包含在脚本中即可,如下所示:

lftp -c "set ftp:ssl-allow no; debug; open -u $FTP_USERNAME,$FTP_PASSWORD -p $FTP_PORT $FTP_HOST; mirror -Rev ./ gitlab --verbose --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"

另外,您应该尝试使用以下命令安装lftp: apt-get更新-qq && apt-get安装-y -qq lftp 因为该版本包括用于支持安全连接的库libgnutls。

这是我的设置中使用FTP部署的配置:

.gitlab-ci.yml

...

deploy:
  stage: deploy
  script:
    - apt-get update -qq && apt-get install -y -qq lftp
    - lftp -u $FTP_USER,$FTP_PASS $HOST -e "mirror -e -R -p ./dist/ new/ ; quit" 
    - echo "deployment complete"
  # specify environment this job is using
  environment:
    name: staging
    url: http://example.com/new/
  # needs artifacts from previous build
  dependencies:
    - build

lftp文档:https://lftp.yar.ru/lftp-man.html