Я работаю на компьютере с Windows и пишу в основном в Visual Studio Code. Я пишу Dockerfile и использую с ним файл docker для создания yml, изображение находится в последней версии Ubuntu. Я пытался использовать Curl, чтобы получить последнюю версию GitHub для публичного репозитория.
Моя проблема заключалась в том, что при попытке запустить docker compose -f compose.yml build --pull
я продолжал получать эту ошибку:
**curl: (3) URL using bad/illegal format or missing URL**
Я сделал это способами, перечисленными в этом выпуске GitHub: https://gist.github.com/gvenzl/1386755861fb42db492276d3864a378c
Чтобы попытаться исправить ошибку, я следил за комментариями по приведенной выше ссылке на github, а также отсюда: Не могу запустить команду Curl внутри моего Docker-контейнера, который включал
apt-get install -y curl
но ничего не работало, потому что каждый раз я получал одну и ту же ошибку. Я протестировал каждую команду с помощью сценария оболочки в подсистеме Windows для Linux (WSL), и там они работали нормально. Мне удалось получить правильную строку с помощью Curl и sed (я распечатал ее, чтобы проверить этот бит), и я смог правильно извлечь нужный мне zip-файл. Итак, я подумал, что что-то не так с docker Compose и Curl, но я нашел других, которые просто сказали, чтобы это исправить, они установили Curl, что я уже сделал.
Далее по этой теме: stackoverflow.com/help/self-answer
ах, я этого не знал, сделаю
Это были окончания строк или конец последовательности строк. Поскольку я работаю на машине с Windows, она автоматически назначает окончания строк CLRF, то есть \r\n
. Docker хочет, чтобы вы использовали окончания строк LF или \n
. Я изменил это в своем Dockerfile на VSCode, нажав кнопку «CRLF» в правом нижнем углу окна редактора и переключив ее на LF. фрагмент правого нижнего угла редактора VSCode
Я читал об этом здесь LF будет заменен на CRLF в git — Что это такое и важно ли это?, аналогичная проблема возникла у меня при отправке на Github, и появилось всплывающее предупреждение:
В вашем рабочем каталоге файл будет иметь исходное окончание строк. предупреждение: LF будет заменен на CRLF в .
Вы всегда можете опубликовать вопрос с ответом на себя в SO, но тогда вам нужно опубликовать вопрос и ответ, а не вопрос, содержащий ваш ответ.