在Windows的Jenkins中使用Docker进行React App的持续交付

时间:2019-05-29 12:47:37

标签: reactjs docker jenkins jenkins-pipeline

我遵循了(this)[https://hackernoon.com/continuous-delivery-of-react-app-with-jenkins-and-docker-8a1ae1511b86]]教程,使用Jenkins和Docker设置React App的持续交付。我在Jenkins中进行了所有初始设置,当我尝试构建作业时,它显示以下错误:-

Jenkins Console Output

所以我了解到Jenkins管道中缺少docker安装,所以我尝试在管道中添加docker安装并在工具配置中添加了Jenkins安装。但是仍然显示相同的错误,将不胜感激任何帮助。

enter image description here

这是我的Jenkisfile:-

pipeline{
agent any
stages{
stage('Checkout') {
    steps{
        script{
            checkout scm
        }
     }
    }
stage('Install dependencies') {
  steps {
    script {
      def dockerTool = tool name: 'docker', type: 'org.jenkinsci.plugins.docker.commons.tools.DockerTool'
               withEnv(["DOCKER=${dockerTool}/bin"]) {
                //stages
                //here we can trigger: sh "sudo ${DOCKER}/docker ..."
                } 
            }
        }
      }
   stage('Environment') {
       steps{
           script{
            sh 'git --version'
            echo "Branch: ${env.BRANCH_NAME}"
            sh 'docker -v'
            sh 'printenv'
           }
       }
     }
    stage('Build Docker test'){
        steps{
        sh 'docker build -t react-test -f Dockerfile.test --no-cache .'
        }
    }
    stage('Docker test'){
      steps{
      sh 'docker run --rm react-test'
      }
    }
    stage('Clean Docker test'){
      steps{
      sh 'docker rmi react-test'
      }
    }
    stage('Deploy'){
    steps{
      if(env.BRANCH_NAME == 'master'){
        sh 'docker build -t reactapp --no-cache .'
        sh 'docker tag reactapp localhost:5000/reactapp'
        sh 'docker push localhost:5000/reactapp'
        sh 'docker rmi -f react-app localhost:5000/reactapp'
      }
    }
    }
  }
 }

Dockerfile

# Extending image
FROM node:carbon

RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get -y install autoconf automake libtool nasm make pkg-config git apt-utils

# Install Docker -y flag suppresses prompting from apt-get
RUN apt-get update && \
    apt-get -y install docker-ce docker-ce-cli containerd.io

# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app  
....

1 个答案:

答案 0 :(得分:0)

如果您正在该文章所述的Docker容器中运行Jenkins,则需要在该Docker映像中安装Docker才能运行Docker命令。如果安装了Docker,则可能是权限或PATH问题。

检查Docker是否已安装并能够运行的一种方法是登录运行Jenkins的容器并尝试运行Docker命令:

  1. docker ps-在正在运行的机器上运行Docker会告诉您正在运行哪些容器。取得Jenkins Docker容器的容器ID。
  2. docker exec -it <put container id here> bash-将使您正在运行的shell进入该容器,以便您可以从该容器中运行命令。
  3. docker -v-容器中的内容将告诉您docker是否已成功安装。如果您获得docker: command not found,Jenkins将无法使用它。
  4. exit-将关闭外壳。

您可以通过在您的Dockerfile中添加RUN命令来在Jenkins Docker映像中安装Docker。例如:

# Install Docker -y flag suppresses prompting from apt-get
RUN apt-get update && \
    apt-get -y install docker-ce docker-ce-cli containerd.io

要安装的Docker文档:https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1