На даний момент мені вдалося створити файл Дженкінса для запуску аналізу 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
, це, мабуть, теж спрацює.