/ / Як я можу отримати сховище всередині контейнера Docker під час використання Jenkinsfile? - дженкіни, дженкіни-трубопроводи, дженкіни-докер

Як перевірити сховище в контейнері Docker при використанні Jenkinsfile? - Дженкінс, джинкінс-трубопровід, дженкинс-докер

На даний момент мені вдалося створити файл Дженкінса для запуску аналізу PHP всередині контейнера. Ось суть його:

node {
stage "Prepare environment"
checkout scm
def environment  = docker.build "platforms-base"

environment.inside {
stage "Update Dependencies"
sh "composer install || true"
}
}

Коли це запускається, здається, що репо перевіряється на хост-машину і цей каталог встановлюється в контейнер докера в /app каталог. (Я не знайшов для цього жодної конфігурації, тому я не впевнений, де це визначено.)

У цьому ж контейнері я встановив Magento2 в /var/magento2 каталог. Мені потрібно запустити кілька тестів у межах кодової бази Magento2. Це означає, що мені потрібно перевірити поточну гілку в певному каталозі контейнера в /var/magento2/vendor/myorg/mypackage/ але, схоже, перевірено репо /app.

Як перевірити репо в певному місці всередині контейнера?

Відповіді:

1 для відповіді № 1

/app буде встановлено всередині вашого контейнера, оскільки ви (або Dockerfile, який ви використовуєте) монтуєте поточний каталог як /app.

Тепер ваш код є Дженкінс вже перевірив чудово, так що яне хотів би зробити окрему додаткову скарбницю всередині контейнера докера. Дженкінс просто перевірив правильну гілку / тег / тег для вас з належними обліковими даними, тому не потрібно робити це самостійно.

У вас є три основні варіанти:

  • Змонтувати поточний каталог не як /app, але як /var/magento2/vendor/myorg/mypackage/

  • Змонтуйте поточний каталог як обидва /app і /var/magento2/vendor/myorg/mypackage/. Ви можете, навіть, зробити це за допомогою додаткового параметра командного рядка замість того, щоб змінювати Dockerfile. (Це дуже залежить від налаштувань вашої розробки).

  • Зробити /var/magento2/vendor/myorg/mypackage/ символічне посилання на /app, це, мабуть, теж спрацює.