我在服务器上运行gitlab-runner,未在使用docker进行部署。我正在尝试通过对服务器执行SSH来实现在远程服务器上的部署。这是我的.gitlab-ci.yml文件-

stages:
  - deploy

pre-staging:
  stage: deploy
  environment:
    name: Gitlab CI/CD for pre-staging deployment
    url: "$REMOTE_SERVER"
  before_script:
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
    - mkdir -p ~/.ssh
    - eval $(ssh-agent -s)
    - 'echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  script:
    - ssh-add <(echo "$REMOTE_PVT_KEY")
    - ssh ubuntu@"$REMOTE_SERVER" "cd deployment_container; npm --version ;rm -rf static; source deploy.sh"
    - echo "Deployment completed"
  only:
    - megre_requests
    - pre-staging
  tags:
    - auto-deploy


我的管道失败,出现错误npm:找不到命令。我在ssh-ed服务器上有适合npm的环境。我正在尝试部署Django反应的应用程序。
我已经尝试使用image: node:latest
使用nvm安装npm

有人可以帮我解决这个问题吗?

最佳答案

尝试将ssh步骤替换为:

ssh ubuntu@"$REMOTE_SERVER" "pwd; cd deployment_container; echo $PATH"


如果此“部署”(不会执行任何操作)完成,则表示在SSH会话中定义的默认npm中无法访问PATH

10-06 07:54
查看更多