Композиция up: Невозможно получить .docker / config.json - PullRequest
0 голосов
/ 24 сентября 2019

Я конвертирую простой файл docker-compose на моем Mac с помощью kompose.Но каждый раз, когда я запускаю kompose, я получаю:

WARN Unable to retrieve .docker/config.json authentication details. Check that 'docker login' works successfully on the command line.: Failed to read authentication from dockercfg 
INFO Authentication credentials are not detected. Will try push without authentication. 
INFO Attempting authentication credentials 'docker.io 
ERRO Unable to push image 'bolbeck/simplepythonimage:latest' to registry 'docker.io'. Error: denied: requested access to the resource is denied 
FATA Error while deploying application: k.Transform failed: Unable to push Docker image for service firstpythonhw: unable to push docker image(s). Check that `docker login` works successfully on the command line 

kompose convert работает нормально, так как не пытается вытянуть изображение.Также docker login прекрасно работает с терминала, и я могу выдвинуть изображения вручную.

Вот файл docker-compose:

version: "3"

services:
  firstpythonhw:
    build: .
    image: MyAccount/pythonimage
    container_name: pythonhw
    ports:
      - "5000:5000"

Я использую Kompose версию 1.18.0 и Minikubeверсия 1.4.0

1 Ответ

0 голосов
/ 25 сентября 2019

Согласно документации Kompose , во время действия Push изображения данные аутентификации Docker фактически извлекаются из файла конфигурации Docker в следующей последовательности проверки папки:

$DOCKER_CONFIG/config.json, $HOME/.docker/config.json , $HOME/.dockercfg

На самом деле, когда вы входите в реестр через docker login, команда сохраняет учетные данные в config.json файле.Однако Docker также предлагает способ внешнего хранения данных аутентификации пользователя через Хранилища учетных данных в качестве основного хранилища даже для цепочек ключей всей ОС.Но на этот раз Kompose не распознает файл конфигурации Docker и всю структуру содержимого.

В Mac вы можете найти macOS keychain , так как вы проверили docker login Я полагаю, что закодированные в base64 учетные данные не были сохранены в config.json файле, они просто экспортируются в «osxkeychain» на конкретном macOS.

Обновление:

Типичная config.json структура файла:

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "base64 encoded username:password"
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/18.09.7 (linux)"
        }
}
...