Как использовать Jenkins для обновления образа Docker в соответствии с обновлениями на GitHub?

#docker #jenkins #dockerfile #jenkins-pipeline

Вопрос:

Я использовал базу данных MySQL внутри docker и загрузил папку и файл docker на GitHub, я хочу использовать Дженкинса, чтобы определить, когда там что-то изменилось, и удалить мой текущий контейнер, сгенерировать новое и обновленное изображение и создать новый контейнер из этого изображения. У меня есть оба (Докер и Дженкинс), которые работают внутри CentOS в VirtualBox, и оба они уже настроены и запущены. Но мне не удается заставить Дженкинса работать, я использовал синтаксис

     agent any

    stages {
        stage('Try') {
            steps {
                git credentialsId: 'XXXXXX', url: 'https://github.com/XXXXXX.git'
                sh '''docker image build -t imagename:latest .
docker run -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -it --rm --name containercurrent  --network networknome -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 imagename:latest'''
            }
        }
    }
}
 

Я столкнулся с двумя проблемами, первая из которых заключается в том, что когда я запускаю его в качестве теста в браузере, он выдает ошибку:

Couldn't find any revision to build. Verify the repository and branch configuration for this job.

И когда он запускается на виртуальной машине, он запускает команды в папке Дженкинса, я попытался дать Дженкинсу конкретные команды, чтобы перейти в папку Docker и выполнить команды там, но он продолжает выполнять команды в папке Дженкинса, где нет файла Docker, который нужно найти.

Комментарии:

1. Первый из них выглядит либо как проблема с DNS, либо как проблема с сетью на VB. Попробуйте ping google.com с компьютера (Дженкинс тоже может это сделать, если вы не хотите иметь дело с SSH). Второй звучит как проблема, связанная с рабочим каталогом, посмотрите в dir() .