TL; DR
Есть ли способ заставить docker-compose работать с URI TFS Git?
Я написал простой docker-compose.yml, который извлекает из репозитория, содержащего dockerfile, и создает образ.
version: '3.4'
services:
ubuntu:
image: ubuntu-fromrepo
build:
context: https://github.com/dockerfile/ubuntu.git
dockerfile: Dockerfile
Когда вы запускаете это с:
docker-compose up --build
он автоматически извлечет репозиторий git (основная ветка), соберет образ ubuntu и запустит его.
У меня есть репозиторий в TFS с докер-файлом, который работает, когда вы извлекаете его вручную и запускаете. Итак, git clone ...
для клонирования репо, docker build .
для построения образа и затем docker run -it ubuntu:14.04
(например, с таким же репо, как указано выше в TFS).
Однако метод docker-compose, который я использовал выше, не работает, так как не удается разрешить URI Git для TFS. Ожидается, что HTTPS Git URI («https://server -name / имя репозитория .git»), но в TFS URI Git имеют формат («https://server -name »). /tfs/Default/project-name/_git/repository-name").
docker-compose не может разрешить этот URI и выдает эту ошибку:
Не удалось создать службу '...': {'message': 'ошибка загрузки удаленного контекста http: //.../ tfs / Default /.../_ git / ... : не удалось получить http: //.../ tfs / Default /.../_ git / ... со статусом 401 Не авторизовано: \ r \ n ...
HTML - это просто страница ошибки со следующим кодом ошибки:
Полный HTML здесь .
TF400813: Ресурс недоступен для анонимного доступа. Требуется аутентификация клиента.
Есть ли способ заставить docker-compose работать с URI TFS Git?
UPDATE:
Я проверил его с помощью токенизированного URI:
git clone https://token@servername/tfs/Default/projectname/_git/repositoryname
, который работает, но использование того же URI в файле docker-compose.yml не дает - выдает эту ошибку:
ERROR: compose.cli.errors.log_api_error: error detecting content type for remote http://...@.../tfs/Default/.../_git/...: unsupported Content-Type "text/html; charset=utf-8"`
Я думаю, что это просто возвращает страницу с ошибкой в TFS для недоступного ресурса?