У меня есть простой файл docker-compose
, подобный следующему:
version: "3.7"
services:
mongo:
image: asia.gcr.io/myproj/mymongo:latest
hostname: mongo
volumes:
- type: bind
source: $MONGO_DB_DATA
target: /data/db
command: [ "--bind_ip_all", "--replSet", "rs0", "--wiredTigerCacheSizeGB", "1.5"]
Я запускаю его в Kubernetes с помощью следующей команды
docker-compose config | docker stack deploy --orchestrator kubernetes --compose-file - mystack
Однако, когда модуль выходит из строя с этой ошибкой
Failed to pull image "asia.gcr.io/myproj/mymongo:latest": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
Мой частный реестр — это gcloud. Я уже вошел в докер, как показано ниже, используя ключевой файл учетной записи службы.
docker login -u _json_key -p "$(cat keyfile.json)" https://asia.gcr.io
Изображение вытягивается правильно, когда я запускаю
docker-compose pull
По этой ссылке https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/, я обнаружил, что мне нужно создать ImagePullSecrets
У меня есть два вопроса.
Как я могу написать синтаксис
ImagePullSecrets
в моем docker-compose, чтобы на него ссылались правильно.Метод, который упоминается в ссылках, просит вас использовать файл
.docker/config.json
. Однако мой config.json имеет"auths": { "asia.gcr.io": {}, }, он не включает имя пользователя и пароль, так как я настроил его с помощью файла ключа. Как я могу это сделать?
Или есть более простой способ сделать это?
kubectl create secret generic regcred \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson
- person Adiii   schedule 07.09.2019kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
2. Укажите этот секрет в своем yaml какspec: containers: - name: private-reg-container image: <your-private-image> imagePullSecrets: - name: regcred
- person Tarun Khosla   schedule 07.09.2019yaml
вы имеете в видуdocker-compose.yml
? У меня нетyaml
для развертывания. - person kosta   schedule 07.09.2019