У меня возникли проблемы с пониманием этой ошибки при попытке создать проект в Docker:
> [internal] load metadata for docker.io/library/openjdk:11:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to authorize: rpc error: code = Unknown desc = failed to fetch oauth token: unexpected status: 401 Unauthorized'
Что именно означает эта ошибка? Я пропускаю разрешения?
Для справки, вот как выглядит мой Dockerfile:
### base jdk image ###
FROM openjdk:11 as setup
ENV USER sc_user
ENV HOME /home/$USER
ENV REPO $HOME/sc
RUN useradd -u 9999 $USER
COPY --chown=$USER build.gradle gradlew $REPO/
COPY --chown=$USER gradle $REPO/gradle
USER $USER
WORKDIR $REPO
RUN ./gradlew
FROM setup as tdd
ENTRYPOINT ["./gradlew", "-t", "test"]
FROM setup as debug-tdd
ENTRYPOINT ["./gradlew", "-t", "test", "-PjvmArgs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005"]
### build jar ###
FROM setup as build
COPY --chown=$USER src $REPO/src
RUN ./gradlew clean test build generatePomFileForMavenJavaPublication
Похоже, у вас включен BuildKit в вашей конфигурации докера. BuildKit может вызвать такие проблемы. Пожалуйста, попробуйте еще раз с отключенным BuildKit.
В Linux с использованием переменных среды:
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
В Windows и macOS запустите приложение Docker Desktop, перейдите в «Настройки», выберите «Docker Engine» и найдите существующую запись:
"buildkit": true
Измените эту запись, чтобы отключить buildkit:
"buildkit": false
Затем нажмите «Применить и перезапустить» и повторите попытку.
да! "buildkit": ложь спасает меня! Большое спасибо!
Я стучал головой из-за этого. Большое спасибо.
Что, если BUILDKIT был включен намеренно? DOCKER_BUILDKIT=1 docker build --target artifact --output type=local,dest=. .
. Как исправить ошибку? Может ли это быть связано с тем, что команда выполняется за прокси?
Отвечая себе, после правильной настройки прокси в Docker Desktop и в переменных системной среды ошибка у меня исчезла.
@AdainD - мой прокси настроен правильно, но я подтверждаю, что мой wget | завиток не работает. Это как-то связано с прокси. Ты прав.
Ответ изменен, так как BuildKit теперь действительно стабилен, не всегда хорошее решение, чтобы просто отключить его. Повторный вход должен решить эту проблему.
Это помогло моему коллеге 'buildkit': false
в windows10 за прокси компании. Большое спасибо!
после изменения buildkit на false мой рабочий стол docker разбился
Мое дело:
Использование Docker в Windows 10 с Linux WSL2.
Образ был для ubuntu:focal.
Мне пришлось перейти в раздел «Устранение неполадок» на рабочем столе докера и использовать опцию «Очистить/очистить данные». Ранее я пробовал «Восстановить заводские настройки по умолчанию», что дало мне дополнительную строку в ошибке, но не исправило ее. Так что, возможно, оба нужны.
Затем я перезапустил Docker и «Вуаля».
Для Windows вам нужно сначала войти в систему на рабочем столе Docker, и только тогда он будет работать.
Используя Docker Desktop на *MAC, мне пришлось выйти из системы и войти снова, и это сработало.
Если вы столкнулись с этой проблемой после изменения подписки на Docker 31 августа 2021 года, это означает, что вам необходимо войти в Docker Hub для выполнения операций.
Либо используйте вход в докер из настольного приложения докера, либо используйте команду входа в докер из терминала.
Если вы еще не создали учетную запись docker, вы можете подписаться на личный (бесплатный) план здесь - https://hub.docker.com/ или использовать учетную запись docker, которую вам предоставила ваша организация (если вы Имеется).
Здесь упоминались изменения в подписке - https://docs.docker.com/subscription/
Это сработало для меня, мне пришлось войти на рабочий стол докера.
Я также столкнулся с этой проблемой после обновления до новой версии Docker на моем Mac. Однако я решил проблему после повторного входа в систему с терминала.
Команда была:
docker login
После этого мне пришлось указать имя пользователя и пароль для Docker Hub. Проблема была исправлена.
Обратите внимание, что если вы используете собственный реестр, вместо этого вам нужно запустить docker login <registry>
.
Я вошел в приложение Docker, и это сработало
Это не сработало для меня. Успешный вход в систему, но по-прежнему не удается решить с помощью внешнего интерфейса dockerfile.v0: не удалось создать определение LLB: не удалось авторизоваться: ошибка rpc: код = неизвестное описание = не удалось получить токен oauth: непредвиденный статус: 405 Метод не разрешен
@Rohit, который вы используете на Mac? На вашем компьютере установлено настольное приложение Docker?
Да обоим.....
@Rohit, вы вошли в систему как в настольном приложении Docker, так и в терминале? Если да, то может быть и другой случай. Однажды я также столкнулся с такой странной проблемой из-за моего интернет-провайдера. ИДК, в чем твой случай?
сначала выйдите из системы, если вы вошли в систему, и войдите снова: $ docker logout
$ docker login
укажите свои учетные данные.
Если вы работаете в какой-то докерской мастерской или внутри организации $ docker login #link_of_the_artifactory_here
Мое дело:
Использование Docker в Windows 10 с Linux WSL2.
Я просто сделал docker logout
и это сработало.
Я помню, как когда-то назад я выполнил вход в докер. Следовательно, даже для общедоступных изображений докер принудительно выполнял аутентификацию. Единственным выходом было либо снова войти в систему, либо выйти из системы Docker.
Я сделал выход из докера, и это сработало.
Для меня в Windows просто перезапустите докер, он будет работать.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Эта ошибка также появится при создании или обновлении Docker AccessToken. После выхода/входа в клиент он снова работает.