gitlab-runner lookup docker no such host

Жила-была репа в gitlab. Был в ней CI, был в ней и CD. Пользовалась репа шаренными раннерами от gitlab и успешно тратила кучу минут на сборку. Все было хорошо, пока число этих минут не стало расти угрожающими темпами. В общем, надо поднимать свой раннер и не один

Поначалу ничего этакого, все идет по инструкции

docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register

docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner      -v /var/run/docker.sock:/var/run/docker.sock      gitlab/gitlab-runner:latest

Все пошло хорошо, пока не возникла ошибка

error during connect: Post http://docker:2375/v1.40/auth: dial tcp: lookup docker on x.x.x.x:53: no such host

Первым, что выдают рецепты из интернета, так это запустить докер в привелигированном режиме. Другие советы типа “пробрось docker.sock” уже учтены в инструкции гитлаба. Но даже будучи включенными – не помогают. Все равно докер ломится по tcp, полностью игнорируя сокет.

Погуглив еще немного, обнаружил, что если стоит переменная DOCKER_HOST, то все остальное игнорируется. Ок, значит надо сказать unset DOCKER_HOST перед выполнением. И вуаля! Вот пример рабочего config.toml. Значимые изменения от дефолтного я выделил

concurrent = 2
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "gitlab-runner-docker"
  url = "https://gitlab.com/"
  token = "TOKEN"
  executor = "docker"
  pre_build_script = "unset DOCKER_HOST"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "docker:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
    shm_size = 0

Свинья – лучший друг человека!

Все играли или пробовали играть в Angry Birds. Злобные птицы мешают милым зеленым поросятам спокойно жить в своих домиках. При этом нет ничего, что говорило бы про желание свиней питаться яйцами (кроме нагло смонтированных роликов). А ведь на самом деле свиньи умны, веселы и изобретательны!

Screenshot_2016-01-08-13-16-43

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

Если в птичках думать не надо (бери да швыряйся), то тут халява не проходит: надо “кумекать”, особенно на последних уровнях. Число собранных звездочек варьируется от времени работы двигателя, места посадки свиньи или варианта конструкции. Более того, собранное обожает разваливаться, рассыпаться, взрываться и улетать в самых разных направлениях.

Берем для iOS, Android и OS X

Шарики черные, зеленые и белые …

… и все лезут не тогда, когда надо и не туда, куда надо. А потом из-за них всё ломается!

Как обычно, там вроде даже есть какая-то история и сюжетная линия, но я ей не интересовался, потому что все играется и без нее.

IMG_0012

Как и положено хорошей игре, всё происходит без доната и с постепенно увеличивающейся сложностью. Не поддающиеся уровни можно пропустить или просто перейти на другую карту, если шариков собрано достаточное количество.

Играть просто: черные шарики создают постоянные связи, а зеленые – временные, которые можно разрушить в любой момент. Красные шарики при выносе надуваются и тянут вверх, а белые умеют образовывать цепочки. Надо создать такую икебану, что бы достать одним из шариков до выхода, но не зацепить ничего лишнего. Уровень считается пройденным если шариков засосало достаточно. Просто, понятно и на последних уровнях неимоверно сложно.

Игра есть под все платформы, поэтому найти ее не составит труда. Поверьте, 250 рублей за такое не дорого.

World of Goo для iOS и Android и даже Steam

Защищаемся от …

Вообще-то это целый жанр игр, который пошел от одной – Tower Defense. Суть игры простая – вам надо защитить от прохода/проезда/проплыва/прополза и пролета какую-либо точку. Защита организуется не менее просто – вам необходимо расставить на пути движения злодеев пушки/орудия/бластеры. Враги тоже не отличаются изысками – они тупые и прут по маршруту, не обращая внимания на то, что их уничтожают всеми доступными и недоступными способами.

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

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

Ну и у летающих есть те же самые классы. Иногда добавляют врагов, которые могут уничтожать пушки или лишать их каких-либо особенностей.

Казалось бы, что может быть интересного в подобного рода играх? Расставил – уничтожил. И тут на сцену выходит его величество баланс. Большинство “новых” игр этого жанра построены по классической схеме: даём легко выиграть первые уровни, а затем начинаем задирать сложность до такой степени, что игроку просто невозможно пройти уровень честно, не покупая различные дополнения и улучшения. Плюс большинство авторов придерживаются канонического устройства игры: на карте есть дороги/реки, свернуть с которых невозможно. А ведь куда приятней “закрутить” врагов на карте, заставив пройти мимо одной и той же пушки несколько раз.

В результате всех игр у меня на планшете обосновалась игра Tower Madness HD, а на телефоне – Robo Defense. Tower Madness есть и на андроиде, но там он почему-то не очень играбельный на мой вкус. Но точно такой же, как и на иос

10389983_10153033126008930_8674888893737785096_n

В Tower Madness ваша задача защищать 10 овечек от злобных инопланетян, которые желают их утащить к себе на корабль. Перед игрой вам дают выбрать пушки, которыми вы будете обороняться. Баран в оружие не входит, но способен один раз уничтожить всех посягнувших на отару.

Robo Defense устроен проще – есть N входов и N же выходов. Всякие штуки пытаются пройти из входа в направлении выхода. В начале карьеры до проигрыша можно пропустить 10 врагов, но потом накопленные очки можно потратить на увеличение этого числа. Графика тут не такая красочная, как в tower madness, но не обращайте внимания – играбельность тут на уровне. Я посадил аккумулятор не на одном смартфоне и не один раз, играя “по 5 минуточек”.

Из отдельных плюсов Tower Madness – сохранение резервных копий достижений в iCloud. И даже сменив телефон или планшет, ваши достижения и открытые карты не исчезнут. Robo Defense так не умеет.

Хорошей игры!

PS Где найти? В магазинах приложений по имени.

Boulder Dash 30th Anniversary

… темные подвальные или полуподвальные помещения, уставленные цветными телевизорами, перед которыми торчат латанные-перелатанные черные пластмассовые джойстики с красными кнопками. И толпы хаотично клубящихся детей, наблюдающих за счастливчиками добывших правдами и неправдами денег и теперь тратящих их за право поиграть. В мое время стоимость игры составляла 15 копеек за минуту, так что очередь продвигалась довольно быстро.

Если владелец зала был в хорошем настроении, то его можно было попросить сменить игру – почему-то в моё время это считалось особым шиком. А если время близилось к вечеру, то можно было попросить поставить игру и посложнее, ибо к тому времени вся малышня уже расставалась с добытыми у родителей деньгами и больше не претендовала на место в очереди к джойстику.

Одной из этих игр “посложнее” был Boulder Dash.

Screenshot 2015-12-06 14.54.44

Суть игры простая: управляя прогрызающим ходы муравьем (сусликом? кротом?) необходимо было за определенное время собрать все алмазы и добраться до выхода. Главное – не дать камням попасть по башке и не столкнуться с жуками. Плевое дело!

Быстренько скачал эмулятор ZX Spectrum и нашел “тапочек” с игрой.

Да, она самая! Правда, на Atari за счет более продвинутого видеоконтроллера скроллинг был плавнее, но уровни те же самые, как и проблемы при их прохождении. И как “тогда”, я заклинился на третьем уровне. Банально не хватало алмазов для открытия дверей. Помучавшись некоторое время, я нашел подсказку и застрял теперь уже на четвертом уровне .. или пятом? Не важно: я застрял. Раз за разом я пытался пройти уровень, не желая сдаваться: ведь сохранений нет, да и денег за прохождение никто не просит.

Наконец у ноутбука покраснел индикатор заряда, однозначно намекая на желание переместиться поближе к розетке и я перестал терзать бедный эмулятор. Но желание играть никуда не пропало, поэтому я пошел искать эмуляторы для планшетов. Правда, вовремя решил просто посмотреть – вдруг кто-нибудь уже скопировал игру?

Ну … не сказать, что скопировали, но переписали под современные рамки – это точно.

Псевдо-3D, обучалки, миссии, “открывашки за деньги” – все это присутствует в полной мере. Даже за старые уровни требуют доплатить 100 с лишним рублей. Буржуи и капиталисты!

Зато музыка ну очень похожа на ту самую, и уровни из Classic Pack вообще один-в-один. Доказательство на видео выше. И даже застреваешь на тех же местах и совершаешь те же самые ошибки, что и тогда.

Из замеченных минусов:
– К управлению приходится привыкать, особенно таким старперам как мне (ребенок освоился сразу). Но привыкнув, играешь спокойно.
– Мне кажется, что в оригинале размер экрана был “больше”. Больше элементов помещалось на экране и не надо было так судорожно мотаться по карте.

И только наигравшись до одури замечаешь, что эту игру выпустили в честь 30-ти летия. Но я взрослый и состоявшийся мужчина и могу позволить себе поиграть в такие игры (и не обращать внимания на возраст). Осталось теперь джойстик найти …

Стоит ли играть: да. Даже если и не играли в оригинал
Где взять: в магазинах приложений. Есть и платная и бесплатная версия.

Обновление: Оказывается, есть версия для браузеров, переделанная из версии для ZX Spectrum