当前位置: 首页 > 知识库问答 >
问题:

gitlab ci管道部署ftp失败

郝昊东
2023-03-14

我尝试用gitlab ci构建并推送我的react build文件夹。yml构建和测试通过,但部署失败,出现以下错误:如果我在语言环境文件中使用相同的脚本,它就会工作!

    lftp -e "mirror -R build/ ./test ; quit" -u $USERNAME,$PASSWORD $HOST
mirror: Access failed: /builds/myGitLab/myGitlabProjectName/build: No such file or directory
lftp: MirrorJob.cc:242: void MirrorJob::JobFinished(Job*): Assertion `transfer_count>0' failed.
/bin/bash: line 97:   275 Aborted                 (core dumped) lftp -e "mirror -R build/ ./test ; quit" -u $USERNAME,$PASSWORD $HOST
ERROR: Job failed: exit code 1

这是我的all yml文件:

image: node:13.8

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install
    - npm run build

test:
  stage: test
  script:
    - yarn
    - yarn test

deploy:
  script:
    - apt-get update && apt-get install -y lftp
    - lftp -e "mirror -R build/ ./test ; quit" -u $USERNAME,$PASSWORD $HOST
    
enter code here

共有2个答案

袁雅逸
2023-03-14

我有一部分答案,但我想做得更好。事实上,我明白发生了什么。在docker映像构建的每个阶段上,然后在测试和部署上构建之后,就不再有构建文件夹了。我不知道如何将docker的图像分发到每个阶段。欢迎任何帮助。为了让它发挥作用,我在一个阶段中用以下方式完成了每个脚本:image:node:13.0.1

阶段:-生产

构建:阶段:生产脚本:-npm安装-npm运行构建-npm运行测试-apt-get更新-qq

莫河
2023-03-14

我明白了!我从docker映像(节点)开始执行这三个阶段:构建、测试和部署,但没有成功,但我尝试在阶段部署中执行ls-a,我意识到我没有构建文件夹。因为每次都会重新创建docker映像,所以我添加了工件以保留buid文件!一旦构建阶段的工作“完成”。它保存在一个变量中,可供下一个作业和部署使用!

image: node:13.8

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install
    - npm run build
  only:
    - master
  artifacts:
    paths:
      - build

test:
  stage: test
  script:
    - yarn
    - yarn test

deploy:
  stage: deploy
  before_script:
    - apt-get update -qq
  script:
    - apt-get install -y -qq lftp
    - ls -a
    - lftp -e "set ssl:verify-certificate false; mirror --reverse --verbose --delete build/ ./test2 ; quit" -u $USERNAME,$PASSWORD $HOST
  only:
    - master

 类似资料:
  • 我试图通过jenkins管道将azure web应用程序部署到azure form git 代码如下所示 这怎么可能?有什么方法可以将git repo url作为参数提供给azure插件吗? 谢了!

  • 我正在尝试在Heroku上托管Flask web应用程序,同时使用以下步骤来托管我的web应用程序: 在我完成所有这些之后,我的终端绝对没有错误,但是烧瓶应用程序仍然不工作。下面给出了Heroku的日志。 2022-02-12T09:27:20.056100 00:00heroku[router]: at=错误代码=H14 desc="没有web进程运行"方法=GET路径="/"主机=bukkit

  • 我使用beam SDK用python编写了一个Google数据流管道。有一些文档介绍了我如何在本地运行它,并设置runner标志以在数据流上运行它。 我现在正尝试将其自动部署到CI管道(bitbucket管道,但并不真正相关)。有关于如何“运行”管道的文档,但没有真正的“部署”管道。我测试过的命令如下: 这将运行作业,但因为它正在流式传输,所以永远不会返回。它还在内部管理打包并推送到存储桶。我知道

  • 我们已经建立了管道脚本,工作得很好。最近,我们决定使用bitbucket管道自动部署到elastic beanstalk,并遵循使用命令进行部署的教程。显然,此命令在管道上失败。配置文件似乎是合法的,因为它在本地运行。它还可以在管道文件中指定的同一图像的容器中运行,也可以从本地使用docker exec在同一图像的容器中运行命令。下面是管道文件和我们使用命令得到的错误。我显然漏掉了什么。如有任何帮

  • 基本上,我需要配置CI/CD与比特桶源代码到ECS容器。我想使用CodePipline部署新的ECR映像到ECS。 目前,AWS CodePipline中没有将bitbucket指定为源的选项。然而,我已经设法用webhooks配置了CodeBuild,这样它就可以构建docker文件,并在每次推送发布分支时将其推送到ECR。 我想将ECR配置为CodePipline中的“源”阶段,并将其部署到现

  • 我试图在Azure运营模式发布管道上创建Click一旦部署我创建签名,清单,应用程序,部署文件与证书但是我如何创建exe和安装文件(通过Azure运营模式发布管道)