Jenkins:创建管道以读取 dockerfile

Jenkins: Creating pipeline to read dockerfile

正在创建管道以读取 Dockerfile 并为此应用程序创建容器 运行。

詹金斯文件:

pipeline {
  agent any
  tools {nodejs "node" }
  stages {
    stage('Cloning Git') {
      steps {
        git url: 'https://github.com/user/private-repo.git',
        credentialsId: 'Git-2'
      }
    }
    stage('Build Container Image') {
      steps {
        agent{
          dockerfile {
              filename '$workspace/Dockerfile',
              label 'node'              
          }
        }
      }
    }
    stage('Build') {
       steps {
         sh 'npm install'
       }
    }
    stage('Test') {
      steps {
        sh "pwd"
      }
    }    
  }
}

错误:

WorkflowScript: 15: Expected a step @ line 15, column 15. filename '$workspace/Dockerfile',

我正在阅读这篇文章 Using Docker with Pipeline。我是 Jenkins 的新手,在我看来,我在考虑以下步骤:

但由于我不知道如何与 Jenkins 打交道,所以我有点不知所措。

Docker 文件:

FROM node

RUN apt-get update && apt-get upgrade -y \
    && apt-get clean

RUN mkdir /app
WORKDIR /app

COPY package*.json /app/

RUN npm install

COPY src /app/src

EXPOSE 3000

CMD [ "npm", "start" ]

任何人都可以帮助我,或推荐一篇文章?

Jenkins 在我心中发挥作用

使用 docker 和 Jenkins 可能相当复杂。您通常需要问的第一个问题是您需要做多复杂的 Jenkins 构建?如果您只是想 运行 一个容器来容纳您的构建,您通常可以只使用声明性管道。

但是,我发现除此之外,通常还需要脚本管道。使用脚本管道,逻辑通常会稍微复杂一些,但更接近原生 groovy.

https://www.jenkins.io/doc/book/pipeline/docker/#building-containers

https://tutorials.releaseworksacademy.com/learn/building-your-first-docker-image-with-jenkins-2-guide-for-developers

提供了关于如何完成这项工作的一个很好的概述

请注意,您不应从 jenkinsfile 调用 npm install。这应该只在构建过程中从 docker 容器中执行。

  1. 检查源代码。您可以配置 jenkins 服务器以了解您的上游存储库是什么,或者您可以按照步骤 here 添加 URL 和凭据。

  2. 构建您的docker文件

  3. Push/tag 您的 docker 图像到注册表,如上述教程和