繁体   English   中英

npm: command not found - Gitlab CI specific runner

[英]npm: command not found - Gitlab CI specific runner

我在我的服务器上运行 gitlab-runner,我没有使用 docker 进行部署。 我正在尝试通过对服务器执行 ssh 来实现在远程服务器上的部署。 这是 my.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-react 应用程序。 我已经尝试过使用image: node:latest npm 使用 nvm 安装

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

尝试将 ssh 步骤替换为:

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

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

在此我们必须通过执行以下命令为所有用户授予 npm 访问权限,

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local

这解决了我的问题npm: command not found

你可以试试这个。

 stages: - build - deploy deploy-prod: image: node:12.13.0-alpine stage: deploy script: - npm i -g firebase-tools

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM