【问题标题】:Jenkins: Creating pipeline to read dockerfileJenkins:创建管道以读取 dockerfile
【发布时间】:2021-01-26 07:38:33
【问题描述】:

创建管道以读取 Dockerfile 并为此应用创建容器。

Jenkins 文件:

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: 预计第 15 行第 15 列的步骤。 文件名'$workspace/Dockerfile',

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

  • 克隆回购
  • 读取 Dockerfile
  • 运行 Container abd Bind Workspace Jenkins 到 Container Workspace
  • 安装 NPM 包
  • 运行应用程序

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

Dockerfile:

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-pipeline


【解决方案1】:

使用 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. 构建你的 dockerfile

  3. 如上述教程和here所示,将您的 docker 映像推送/标记到注册表中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多