[英]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.