Gitlab CI和Docker结合部署Node App,项目启动监听后Pipeline一直处于running状态

发布于 2022-09-06 09:01:46 字数 969 浏览 11 评论 0

我有一个Express项目,用的CI是Gitlab自带的Gitlab-ci。

选择的是runner是docker。 以下是配置信息

image: node:8.9.3

services:
  - mongo:latest

before_script:
  - npm install -g cnpm
  - npm install -g cross-env
  - cnpm --version

stages:
  - deploy

job-deploy-staging:
  stage: deploy
  script:
    - cnpm install
    - npm run prod
  tags:
    - express

当执行完npm run prod后,开始监听端口(项目正常启动),但是CI的pipeline的状态一直是running(为何不是结束?)

其他的一些问题
  1. 现在项目是运行在docker里的,监听的是docker的端口, 如何映射到主机的端口(让我访问主机就可以访问到应用)
  2. npm下载依赖会有问题(由于众所周知的原因,加了--registry也不行),所以有了那个cnpm install, 有没有什么好的解决办法?
  3. 配置.gitlab-ci.yml的时候,有个pull_policy选项,必须是一个hash, 但是pull_policy不就只能选择, 也就是我如果要配置成'if-not-present'就需要类似于这样:
pull_policy:
  - <key>: 'if-not-present'

但是这个key是什么? 官网的Ref里没有说。

第一次配置CI和Docker,问题有点儿多, 望见谅!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

临走之时 2022-09-13 09:01:46
  1. running 需要把你的Dockerfile文件贴出来才可以解答
  2. 端口映射,镜像启动的时候可以配置端口映射,类似于0.0.0.0:port:port2;其中port是主机监听端口,port2是你的node监听端口
  3. 下载依赖问题我是通过设置npmrc文件,这个文件里你可以set registry; 可以在dockerfile文件里echo进去
  4. 最后一个问题不清楚是什么意思。。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文