Я пытаюсь получить сценарий jenkins для успешной сборки, но появляется следующая ошибка:
+ docker build -t sampledocker:ab77808c16d59600e0046df860e97a5f22576556 -f Dockerfile .
Cannot connect to the Docker daemon at tcp://192.xxx.xxx.xxx:2375. Is the docker daemon running?
[Pipeline] }
[Pipeline] // withDockerRegistry
Это сценарий jenkins:
node
{
def scmVars = checkout scm
def commitHash = scmVars.GIT_COMMIT
sh "echo githubcommithash is $commitHash"
sh "echo $WORKSPACE"
docker.image('adoptopenjdk/maven-openjdk11:latest').inside('-v $HOME/.m2:/root/.m2')
{
stage('Build')
{
sh 'mvn clean install package -Dmaven.test.skip=true'
sh 'pwd'
}
}
stage('Deploy')
{
withEnv(["DOCKER_HOST=tcp://192.xxx.xxx.xxx:2375"])
{
docker.withRegistry('https://jenkins-myrepo.net')
{
def customImage = docker.build("sampledocker:${commitHash}", "-f Dockerfile .")
customImage.push("latest")
sh "docker pull jenkins-myrepo.net/sampledocker:latest"
sh "docker stop sampledocker || true && docker rm sampledocker || true"
sh "docker run -d --restart=always --name=sampledocker -p 10020:10020 -v /tmp/caprod:/tmp/caprod jenkins-myrepo.net/sampledocker:latest"
}
}
}
}
На сервере уже есть контейнер, работающий с другим именем, но ошибка продолжает появляться. Я также хотел бы изменить скрипт, чтобы новый контейнер не запускался, если он уже запущен с таким именем.