gpt4 book ai didi

node.js - 在 GitLab CI 中为 Node.js 应用程序构建 Docker 镜像

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:12 24 4
gpt4 key购买 nike

我正在开发一个 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 执行 Runners 中的管道需要使用生成的 token (Settings/CI CD/Runners)注册到项目中。您还可以使用Shared Runners对于多个项目。管道是使用 .gitlab-ci.yml 文件配置的,您可以 build, test, push and deploy docker images当存储库中完成某些操作(推送到分支、合并请求等)时,使用 yaml 文件。

It’s also useful when your application already has the Dockerfile that can be used to create and test an image

所以基本上您需要安装运行器,使用项目的 token 注册它(或使用共享运行器)并配置 CI yaml 文件。推荐的方法是docker in docker但这取决于你。您还可以查看this basic example 。最后,您可以将容器直接部署到 Kubernetes 中,Heroku或 Rancher 。请记住在“设置/变量”中安全地配置您的凭据和 secret 。

结论

GitLab CI 很棒,但我建议您首先考虑要使用的 git 工作流程,以便在 .gitlab-ci.yml 文件中设置阶段。这将允许您将 Node 项目配置为管道,然后可以轻松导出到其他工具,例如 Jenkins 管道或 Travis。

关于node.js - 在 GitLab CI 中为 Node.js 应用程序构建 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54271852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com