跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • ci/cd 前端自动化部署的一个问题
未分類
15 2 月 2021

ci/cd 前端自动化部署的一个问题

ci/cd 前端自动化部署的一个问题

資深大佬 : xiaohantx 1

想问下为什么会

$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/gitlab-runner/.local/bin:/home/gitlab-runner/bin $ npm install --no-optional --registry=https://registry.npm.taobao.org bash: line 85: npm: command not found ERROR: Job failed: exit status 1 

npm 找不到是为什么

default:   image: node:latest  stages:   - lint  cache:     paths:         - node_modules/  test:   stage: lint   before_script:     - echo $PATH   script:     - npm install --no-optional --registry=https://registry.npm.taobao.org     - npm run lint   only:     - master     - dev 

大佬有話說 (29)

  • 資深大佬 : br_wang

    你再 node -v 一下,看看是不是 node 也没有。
    感觉是镜像那里,为啥要 default 阿?不是直接 image 就可以?

  • 主 資深大佬 : xiaohantx

    @br_wang 是可以,我原来写的就是直接
    “`
    image: node:latest

    stages:
    – lint

    cache:
    paths:
    – node_modules/

    test:
    stage: lint
    before_script:
    – echo $PATH
    script:
    – npm install –no-optional –registry=https://registry.npm.taobao.org
    – npm run lint
    only:
    – master
    – dev
    “`

    但是也不行所以就试试- -忘记删了。。docker 镜像里应该有环境的呀。。

  • 資深大佬 : chenluo0429

    执行指令的用户是 gitlab-runner,盲猜你的 npm 是在当前用户 home 目录下,比如我用的 nvm 管理 node 就在 /home/dev/.nvm 下面。可以用 whereis npm 看看 npm 究竟在什么目录下。
    或者也可能是没有访问权限。

  • 主 資深大佬 : xiaohantx

    @br_wang 是的 node 也没有= =

  • 主 資深大佬 : xiaohantx

    @chenluo0429 是要联系管理员在当前用户配置环境嘛,我以为会自动拉 docker 镜像然后里面有 node…和 npm

  • 資深大佬 : br_wang

    @xiaohantx 所以命令执行时就没使用 node 这个镜像…… 把 default 去掉应该就好了。

  • 主 資深大佬 : xiaohantx

    @br_wang 现在写的是
    “`
    image: node:latest

    stages:
    – lint

    cache:
    paths:
    – node_modules/

    test:
    stage: lint
    before_script:
    – node -v
    script:
    – npm run lint
    only:
    – master
    – dev
    “`

  • 資深大佬 : wxsm

    你可以在执行 npm 之前打印一下 whoami,肯定不对

  • 主 資深大佬 : xiaohantx

    @wxsm 输出的是 gitlab-runner

  • 資深大佬 : wxsm

    @xiaohantx 你这个 runner 确定是以 docker 模式运行的吗,确定不是配了 shell 模式吗

  • 資深大佬 : AngryPanda

    npm 在 path 下面吗?或者直接写绝对路径

  • 主 資深大佬 : xiaohantx

    @AngryPanda 用 which 找,找不到

  • 主 資深大佬 : xiaohantx

    @wxsm 这两个是有区别的嘛….我不确定因为我看大部分文档没有提到有 docker 和 shell 两种模式都是直接的 docker

  • 主 資深大佬 : xiaohantx

    @AngryPanda node 都没有目前来看

  • 主 資深大佬 : xiaohantx

    @wxsm 看后端的打包命令有这个

    “`
    docker-build:
    stage: package
    dependencies:
    – maven-build
    script:
    – docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    – docker build -t $CI_REGISTRY_IMAGE:latest .
    – docker push $CI_REGISTRY_IMAGE:latest
    only:
    – develop

    “`

  • 資深大佬 : wxsm

    @xiaohantx 你可以看一下 CI 的执行日志,开头几行会有类似 `Using Shell executor` 的输出,如果是 Shell 说明配错了,你在 yarml 里面指定了 image 没有用,它会直接在宿主机上执行。如果是 Using Docker executor,那才是对的。

  • 資深大佬 : mitsuizzz

    把 images 移动到 test 里试试

    test:
    stage: lint
    image: node:12-alpine
    before_script:
    – echo $PATH
    script:
    – npm install –no-optional –registry=https://registry.npm.taobao.org
    – npm run lint
    only:
    – master
    – dev

  • 主 資深大佬 : xiaohantx

    @wxsm 确实,这里显示了 Using Shell executor…

  • 主 資深大佬 : xiaohantx

    @wxsm 那请问下 shell 的话我可以通过 yml 配置环境嘛,我看后端的 java 好像是程序打包起来

  • 資深大佬 : wxsm

    @xiaohantx Shell 模式写 image 没有用,会被忽略。这个需要重新配置一下 runner,或者放弃使用 docker,在 runner 宿主机上安装 nodejs,两种方式都行。

  • 主 資深大佬 : xiaohantx

    @wxsm 另外想麻烦请教下,看后端部署文件有个 docker-build,这个是干什么用的~

  • 主 資深大佬 : xiaohantx

    @mitsuizzz 因为 shell 原因上说 images 会不生效

  • 資深大佬 : nano91

    whereis 看看

  • 資深大佬 : wxsm

    @xiaohantx 你贴的 docker-build 也是个 CI 任务,估计是你们后端用来打包上传镜像用于部署的,跟 runner 没有关系

  • 主 資深大佬 : xiaohantx

    @nano91 上面已经看啦,no npm

  • 主 資深大佬 : xiaohantx

    @xiaohantx 好的感谢

  • 資深大佬 : mitsuizzz

    @xiaohantx 你这个得修改 runner 配置了
    [[runners]]
    name = “xxxxx”
    url = “xxxxx”
    token = “xxxxx”
    executor = “docker”

    你这里的执行器应该是 shell 了

  • 主 資深大佬 : xiaohantx

    @mitsuizzz 好的感谢,如果 shell 模式下,不在服务器安装 nodejs 是不是没啥办法了-v-

  • 資深大佬 : mitsuizzz

    @xiaohantx 是的 建议还是重新配置下 runner

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具