簡體   English   中英

在GitLab CI中為Node.js應用程序構建Docker映像

[英]Building a Docker image for a Node.js app in GitLab CI

我正在開發一個Node.js應用程序,其當前的Dockerfile如下所示:

# Stage 0
# =======
FROM node:10-alpine as build-stage

WORKDIR /app

COPY package.json yarn.lock ./
RUN yarn install

COPY . ./
RUN yarn build

# Stage 1
# =======
FROM nginx:mainline-alpine

COPY --from=build-stage /app/build /usr/share/nginx/html

我想將其集成到GitLab CI管道中,但是不確定是否有基本想法。 到目前為止,我知道我需要創建一個.gitlab-ci.yml文件,以后它將由GitLab提取。

我的基本想法是:

  1. 我將代碼更改推送到GitLab。
  2. GitLab基於我的Dockerfile構建一個新的Docker映像。
  3. GitLab將這個新創建的映像推送到“生產”服務器(稍后)。

所以,我的問題是:
.gitlab-ci.yml則應該包含這樣一個build觸發...什么工作? docker build命令? 還是我需要將Dockerfile內容“復制”到CI文件?

GitLab CI執行的管道運動員需要被注冊到使用生成的令牌(設置/ CI CD /賽跑者)項目。 您也可以將Shared Runners用於多個項目。 該管道使用.gitlab-ci.yml文件配置,並且在回購中完成某些操作(推送到分支,合並請求等)后,您可以使用yaml文件構建,測試,推送和部署Docker映像

當您的應用程序已經具有可用於創建和測試映像的Dockerfile時,它也很有用

因此,基本上,您需要安裝運行程序,將其注冊為項目的令牌(或使用共享運行程序)並配置CI yaml文件。 推薦的方法是 docker中使用docker,但這取決於您。 您也可以檢查此基本示例 最后,您可以將容器直接部署到Kubernetes, Heroku或Rancher中。 請記住,在“設置/變量”中安全地配置您的憑據和機密。

結論

GitLab CI很棒,但是我建議您首先考慮一下要使用的git工作流程,以便在.gitlab-ci.yml文件中設置階段。 這將允許您將節點項目配置為管道,然后可以輕松導出到其他工具,例如Jenkins管道或Travis。

建立工作觸發器:

選項1:添加when: manual作業中的手動,您可以在CI / CD>管道中通過手動運行作業

選項2:

only:
    - <branchname>

在這種情況下,當您推入已定義的分支時,作業開始(我個人建議)

選項3:“添加任何內容”,每次您推送代碼時,作業都會運行

當然,您可以組合上面的選項。

另外,可以通過使用作業令牌將作業與Web請求一起顯示。

docker build命令將在管道中運行。 我認為在腳本部分。 gitlab-runner上的要求docker引擎,以選擇作業。

還是我需要將Dockerfile內容“復制”到CI文件?

沒有

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM