Upload
provectus
View
119
Download
3
Embed Size (px)
Citation preview
Докер-в-докере (на самом деле нет)
Нам нужен доступ к докеру из докера, что бы запускать джобы всвоих контейнерах.
Примерный алгоритм джобы
6
Докер-в-докере (на самом деле нет)
Есть подозрения что, докер виснет если параллельной сборке внутриодной машины Поэтому используется bash-костыль в качествесемафора для всего хоста
ATTEMPT_LIMIT="1000"ATTEMPT_NUMBER="1"LOCK_FILE =/tmp/.jenkins -run -off -docker -build -lockLOCK_FD =200eval "exec $LOCK_FD >$LOCK_FILE"while ! flock -n -x $LOCK_FD; do
if (("$ATTEMPT_NUMBER" > "$ATTEMPT_LIMIT")); thenecho "Too many attempts"exit 1
fisleep 5ATTEMPT_NUMBER=$[$ATTEMPT_NUMBER + 1]
done{ docker build --tag=$DOCKER_IMAGE_TAG --force -rm
$DOCKER_IMAGE_PULL_FLAG --file=${BuildFile} ${BuildPath }; } || export CONTAINER_BUILD_ERR =1
7
Запись видео с UI-тестов(шок-контент, 18+)
Используются следующие инструменты:
• Google chrome
• xvfb - виртуальный буфер(а)
• openbox - оконный менеджер
• avconv - запись с экрана
• supervisor - запуск всех этих штук
9