• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

256
Vistas
Obligar a docker a usar la plataforma linux/amd64 de forma predeterminada en macOS

La versión beta actual de docker requiere que especifique --platform=linux/amd64 cada vez que necesite build o run una imagen/contenedor amd64.

La documentación menciona

Al ejecutar una imagen compatible con varias arquitecturas, Docker seleccionará automáticamente una variante de imagen que coincida con su sistema operativo y arquitectura.

La documentación no especifica una forma de alterar este comportamiento automático usando variables env. Parece ignorar tanto BUILDPLATFORM como TARGETPLATFORM.

¿Hay alguna otra forma de obligar a la docker a ejecutar todos los comandos de build y run con una plataforma linux/amd64 en lugar de linux/arm64/v8 de forma predeterminada en macOS que se ejecuta en apple-silicon?

over 3 years ago · Santiago Trujillo
4 Respuestas
Responde la pregunta

0

Puede usar buildx (mobi) que admite cli para la plataforma.

docker buildx build --platform linux/amd64 .

over 3 years ago · Santiago Trujillo Denunciar

0

Las imágenes de Docker creadas con Apple Silicon (u otra arquitectura basada en ARM64) pueden generar problemas al implementar las imágenes en un entorno AMD64 basado en Linux o Windows (p. ej., AWS EC2, ECS, etc.). Por ejemplo, puede intentar cargar su imagen de Docker creada en el chip M1 a un repositorio de AWS ECR y no se ejecuta. Por lo tanto, necesita una forma de compilar imágenes basadas en AMD64 en la arquitectura ARM64, ya sea usando Docker build (para imágenes individuales) o docker-compose build (por ejemplo, para aplicaciones de varias imágenes que se ejecutan en una red docker compose).

Para crear imágenes de una sola ventana acoplable: configure su variable de entorno usando la línea de comando o modificando su archivo .bashrc o .zshenv como se sugiere en la respuesta aceptada.

 export DOCKER_DEFAULT_PLATFORM=linux/amd64

Alternativamente, en el Dockerfile, incluya el siguiente indicador en el comando FROM (para una compilación de Dockerfile de varias etapas, el indicador solo es necesario para la primera etapa):

 FROM --platform=linux/amd64 python:3.7-alpine

Para crear imágenes como parte de una compilación docker-compose , incluya la platform: linux/amd64 para cada servicio. Por ejemplo:

 services: frontend: platform: linux/amd64 build: frontend ports: - 80:80 depends_on: - backend backend: platform: linux/amd64 build: backend
over 3 years ago · Santiago Trujillo Denunciar

0

No necesita exportar la variable env como se menciona en una de las respuestas, puede ejecutarla como parte del comando una sola vez haciendo:

 DOCKER_DEFAULT_PLATFORM=linux/amd64 docker-compose build

Tenga en cuenta que si ya descargó la imagen para una plataforma diferente, Docker seguirá usando esa imagen sin importar qué plataforma especifique como predeterminada.

over 3 years ago · Santiago Trujillo Denunciar

0

Puede configurar la variable de entorno DOCKER_DEFAULT_PLATFORM

 export DOCKER_DEFAULT_PLATFORM=linux/amd64
over 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda