Контейнер службы контейнеров Azure в качестве агента VSTS для создания образов докеров

Я создал экземпляр ACS и зарегистрировал его как агент VSTS. Я использовал изображение lenisha/vsts-agent-infrastructure для использования terraform. В любом случае, я хочу создать образы докеров, но при использовании агентов из ACS я получаю сообщение об ошибке: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. Итак, вопрос в том, есть ли способ добраться до демона докеров? Мне не удалось найти информацию о том, как смонтировать docker.sock в ACS (-v /var/run/docker.sock:/var/run/docker.sock).


person Mateusz    schedule 26.06.2018    source источник


Ответы (1)


Просто обратитесь к этому блогу: Использование Docker агента Visual Studio Team Services Изображения

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

Существует переменная среды с именем VSTS_WORK, которая указывает, где агент должен выполнять работу. Мы можем изменить расположение каталога и смонтировать его так, чтобы при запуске контейнера Docker на хосте он имел доступ к файлам.

Чтобы создать агент, способный использовать докер таким образом:

docker run -e VSTS_ACCOUNT=<youraccountname>  \
  -e VSTS_TOKEN=<your-account-Private-access-token> \
  -e VSTS_WORK=/var/vsts -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/vsts:/var/vsts -d \ microsoft/vsts-agent:ubuntu-16.04-docker-17.03.0-ce-standard

Здесь важна команда -e VSTS_WORK=/var/vsts, которая указывает агенту выполнять всю работу в папке /var/vsts. Затем объемное монтирование папки с -v /var/vsts:/var/vsts позволяет вам запускать контейнеры Docker внутри агента VSTS и при этом видеть все файлы.


ОБНОВЛЕНИЕ:

Основываясь на моем исследовании, кажется, не удается найти способ монтирования /var/run/docker.sock с хост-машины внутри контейнера ACS, например, проблема, упомянутая в этой теме: Монтирующий том в Azure-Container-Service не работает для traefik.toml и /var/run/docker.sock

person Andy Li-MSFT    schedule 27.06.2018
comment
У меня есть такие установки на машинах с голым металлом, и это нормально. Они запускают агенты VSTS как экземпляры докеров. Проблема скорее в Azure Container Services. Я не знаю, возможно ли смонтировать /var/run/docker.sock с хост-компьютера внутри контейнера ACS. - person Mateusz; 27.06.2018
comment
@Mateusz На основании моего исследования кажется, что не удается найти способ смонтировать /var/run/docker.sock с хост-машины внутри контейнера ACS, например, в этой теме: stackoverflow.com/questions/ 47463640/ - person Andy Li-MSFT; 28.06.2018
comment
Я думаю, вы правы. Не могли бы вы опубликовать это как ответ, я отмечу это правильно. - person Mateusz; 29.06.2018
comment
@Mateusz Обновил ответ :) - person Andy Li-MSFT; 29.06.2018