es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Docker Compose no puede extraer la imagen del registro de contenedores de Google.

Tengo imágenes en el registro de contenedores de Google trasladadas desde Docker Hub. Tengo mi archivo docker-compose.yml. El archivo de composición se encarga de extraer con éxito las imágenes de Docker Hub. Pero no puedo extraer del registro de contenedores de Google.

Pasos para iniciar sesión en el registro de contenedores:
1. gcloud auth revoke –all
2. gcloud auth login
3. gcloud config set project projectId
4. gcloud auth activate-service-account deploy@projectId.iam.gserviceaccount.com –key-file=service-account.json
5. gcloud auth configure-docker
6. (a) gcloud auth print-access-token | docker login -u oauth2accesstoken –password-stdin https://asia.gcr.io

El resultado del inicio de sesión es exitoso.

docker-compose up

ERROR: acceso denegado al extraer para [nombre_de_mi_imagen], el repositorio no existe o puede requerir ‘docker login’: se denegó el acceso solicitado a este recurso.

Puedo extraer la imagen con el siguiente comando:

docker pull asia.gcr.io/projectid/nombredemimagen/data-api:latest

docker compose

version: “3.3”
services:
data_api:
container_name: nombredemimagen-data-api
image: nombredemimagen/data-api
expose:
– 4000
ports:
– “4001:4000”
depends_on:
– db
environment:
DATABASE_URL: mysql://root:root@db:3306/nombredemimagen
ACCESS_TOKEN_SECRET: xxxxxxxxxx
REFRESH_TOKEN_SECRET: xxxxxxxxx
networks:
– db-api

db:
container_name: nombredemimagen-db
image: nombredemimagen/db
restart: always
volumes:
– ./db/data/:/var/lib/mariadb/data
environment:
MARIADB_ROOT_PASSWORD: root
MARIADB_DATABASE: nombredemimagen
expose:
– 3306
ports:
– “3307:3306”
networks:
– db-api

networks:
db-api:

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para poder extraer imágenes de Google Container Registry con docker-compose, debes agregar la información de autenticación del registro a tu archivo de composición. Puedes hacer esto agregando el parámetro image con la ruta completa a la imagen en Google Container Registry y el parámetro credential con la información de autenticación.

    Aquí tienes un ejemplo de archivo docker-compose.yml que extrae una imagen de Google Container Registry:

    version: "3.8"
    services:
      web:
        image: gcr.io/my-project/my-image:latest
        credentials:
          file: /path/to/credentials.json
    networks:
      default:
        external:
          name: my-network
    

    Para autenticarte con Google Container Registry, sigue estos pasos:

    1. Instala Google Cloud SDK y autentícate con tu proyecto:
    gcloud auth login
    gcloud config set project [PROJECT_ID]
    
    1. Crea una cuenta de servicio con los permisos necesarios para acceder a tu registro:
    gcloud iam service-accounts create my-account --display-name "My Account"
    gcloud projects add-iam-policy-binding [PROJECT_ID] --member serviceAccount:my-account@[PROJECT_ID].iam.gserviceaccount.com --role roles/storage.admin
    gcloud iam service-accounts keys create credentials.json --iam-account my-account@[PROJECT_ID].iam.gserviceaccount.com
    
    1. Establece la variable de entorno GOOGLE_APPLICATION_CREDENTIALS con la ruta del archivo JSON de credenciales:
    export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json
    
    1. Autentica Docker con tu registro:
    docker login -u _json_key -p "$(cat /path/to/credentials.json)" https://gcr.io
    

    Después de seguir estos pasos, deberías poder extraer imágenes de tu Google Container Registry con docker-compose.

Comments are closed.