我遵循了(this)[https://hackernoon.com/continuous-delivery-of-react-app-with-jenkins-and-docker-8a1ae1511b86]]教程,使用Jenkins和Docker设置React App的持续交付。我在Jenkins中进行了所有初始设置,当我尝试构建作业时,它显示以下错误:-
所以我了解到Jenkins管道中缺少docker安装,所以我尝试在管道中添加docker安装并在工具配置中添加了Jenkins安装。但是仍然显示相同的错误,将不胜感激任何帮助。
这是我的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
....
答案 0 :(得分:0)
如果您正在该文章所述的Docker容器中运行Jenkins,则需要在该Docker映像中安装Docker才能运行Docker命令。如果安装了Docker,则可能是权限或PATH问题。
检查Docker是否已安装并能够运行的一种方法是登录运行Jenkins的容器并尝试运行Docker命令:
docker ps
-在正在运行的机器上运行Docker会告诉您正在运行哪些容器。取得Jenkins Docker容器的容器ID。docker exec -it <put container id here> bash
-将使您正在运行的shell进入该容器,以便您可以从该容器中运行命令。docker -v
-容器中的内容将告诉您docker是否已成功安装。如果您获得docker: command not found
,Jenkins将无法使用它。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