2016-08-23 1 views
1

Мои текущие настройки - это то, что я установил мой готический репозиторий git в своем VPS, назовите его staging.Каков наилучший способ запуска теста в докере перед развертыванием

Так что, когда я делаю:

git push staging staging 

Я повторно мой докер с смонтированным каталогом обратитесь к GIT-workdirs.

Теперь я хотел бы также добавить запуск теста внутри этого докера, а если что-то не удается, верните его назад к предыдущей (рабочей) фиксации. [1]

, что это лучший способ сделать [1]

моих текущих крючками выглядит следующим образом:

$worktree = /my/work/directory 
$gitdir = /my/repo/dir.git 
$containername = mycontainer 
git --work-tree=$worktree --git-dir=$gitdir checkout staging -f 
cd $worktree 
docker stop $containername || true 
docker kill $containername || true 
docker rm $containername || true 
docker run -d -p $port1:$port2 --name $containername -v $worktree:/root/src -it $imagename bash -c $runscript 

ответ

2

(Может не ответить на ваш вопрос прямо, но с другим подходом , что вам не нужно повторно изобретать колесо)

Я сделал это с Kitchen test, который может запустить новый тестовый экземпляр, это может быть vmware, экземпляр ec2 и т. д., это могут быть разные драйверы (бродяга, ec2, docker и т. д., конечно, вы не можете протестировать докер в докере), и вы можете запустить те же самые коды на нем, чтобы автоматически проверять.

Вот Getting started guide

Если все установлено правильно, одна команда kitchen test, чтобы запустить все развертывания, тестирования и уничтожить экземпляр непосредственно.

Тестовый пример использует serverspec, который вы можете легко проверить экземпляр работает, прослушивания порта и т.д. Для подробно о тесте, см serverspec resource types

Вы также можете вручную запустить следующие шаги, чтобы получить по устранению неполадок шаг- шаг за шагом

kitchen test = kitchen create + kitchen converge + kitchen verify + kitchen destroy 
Смежные вопросы