Gitlab CI和Docker结合部署Node App,项目启动监听后Pipeline一直处于running状态
我有一个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
(为何不是结束?)
其他的一些问题
- 现在项目是运行在docker里的,监听的是docker的端口, 如何映射到主机的端口(让我访问主机就可以访问到应用)
- npm下载依赖会有问题(由于众所周知的原因,加了--registry也不行),所以有了那个cnpm install, 有没有什么好的解决办法?
- 配置.gitlab-ci.yml的时候,有个
pull_policy
选项,必须是一个hash, 但是pull_policy
不就只能选择, 也就是我如果要配置成'if-not-present'就需要类似于这样:
pull_policy:
- <key>: 'if-not-present'
但是这个key是什么? 官网的Ref里没有说。
第一次配置CI和Docker,问题有点儿多, 望见谅!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
running
需要把你的Dockerfile文件贴出来才可以解答