首页 > 解决方案 > gitlab runner 没有加载正确的节点版本

问题描述

我已经在我的服务器中安装了 gitlab runner 并与 gitlab repo 和管道绑定。

这是我的 gitlab-ci.yml

image:
  name: node:14.9.0
stages:
  - install
  - deploy

install for production:
  image: node:14.9.0
  stage: install
  tags:
    - mytag
  only:
    - master
  script:
    - node -v
    - /home/gitlab-runner/.nvm/versions/node/v14.9.0/bin/npm i -s

deploy to production server:
  image: node:14.9.0
  stage: deploy
  only:
    - master
  script:
    - cp -r * /the/folder/backend/
    - cd /the/folder/backend/
    - /home/gitlab-runner/.nvm/versions/node/v14.9.0/bin/npm run migrate
    - node_modules/pm2/bin/pm2 reload all --update-env -- DB_OPERATOR_USERNAME=$DB_OPERATOR_USERNAME DB_OPERATOR_EMAIL=$DB_OPERATOR_EMAIL DB_OPERATOR_PASSWORD=$DB_OPERATOR_PASSWORD DB_ADMIN_USERNAME=$DB_ADMIN_USERNAME DB_ADMIN_EMAIL=$DB_ADMIN_EMAIL DB_ADMIN_PASSWORD=$DB_ADMIN_PASSWORD DB_USERNAME=$DB_USERNAME DB_DATABASE=$DB_DATABASE DB_PASSWORD=$DB_PASSWORD

推送主分支并让管道运行后,它没有加载 14.9.0 节点版本。

Checking out b795f45a as master...
Removing node_modules/
Skipping Git submodules setup
Executing "step_script" stage of the job script
$ node -v
v8.10.0
$ /home/gitlab-runner/.nvm/versions/node/v14.9.0/bin/npm i -s

如果我 ssh 进入我的服务器,nvm 加载的节点版本(默认版本)是 14.9.0

我在这台机器上有 2 个跑步者。第一个用于前端(它加载正确的默认节点版本,即14.9.0),第二个用于存在上述问题的后端。节点版本相同。我目前没有 docker,用户node -v内部的命令sudo su gitlab-runner显示14.9.0

为什么 gitlab runner 加载的是 8.10.0 版本?如何将其设置为 14.9.0?

提前致谢

标签: node.jsgitlabgitlab-ci-runner

解决方案


尝试在gitlab runner里面运行docker镜像,查看node的全局版本,好像不是runner的问题。


推荐阅读