在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Linux  HTML/ Gitlab CI和Docker結(jié)合部署Node App,項(xiàng)目啟動監(jiān)聽后Pipe

Gitlab CI和Docker結(jié)合部署Node App,項(xiàng)目啟動監(jiān)聽后Pipeline一直處于running狀態(tài)

我有一個Express項(xiàng)目,用的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

當(dāng)執(zhí)行完npm run prod后,開始監(jiān)聽端口(項(xiàng)目正常啟動),但是CI的pipeline的狀態(tài)一直是running(為何不是結(jié)束?)

其他的一些問題
  1. 現(xiàn)在項(xiàng)目是運(yùn)行在docker里的,監(jiān)聽的是docker的端口, 如何映射到主機(jī)的端口(讓我訪問主機(jī)就可以訪問到應(yīng)用)
  2. npm下載依賴會有問題(由于眾所周知的原因,加了--registry也不行),所以有了那個cnpm install, 有沒有什么好的解決辦法?
  3. 配置.gitlab-ci.yml的時候,有個pull_policy選項(xiàng),必須是一個hash, 但是pull_policy不就只能選擇, 也就是我如果要配置成'if-not-present'就需要類似于這樣:
pull_policy:
  - <key>: 'if-not-present'

但是這個key是什么? 官網(wǎng)的Ref里沒有說。

第一次配置CI和Docker,問題有點(diǎn)兒多, 望見諒!
回答
編輯回答
乞許
  1. running 需要把你的Dockerfile文件貼出來才可以解答
  2. 端口映射,鏡像啟動的時候可以配置端口映射,類似于0.0.0.0:port:port2;其中port是主機(jī)監(jiān)聽端口,port2是你的node監(jiān)聽端口
  3. 下載依賴問題我是通過設(shè)置npmrc文件,這個文件里你可以set registry; 可以在dockerfile文件里echo進(jìn)去
  4. 最后一個問題不清楚是什么意思。。
2018年1月29日 10:01