---
# System prepended metadata

title: Empaquetando imágenes de Docker desde ARM para x86/amd64
tags: [docker]

---

# Empaquetando imágenes de Docker desde ARM para x86/amd64

Truquillo para compilar imágenes de Docker desde ARM cuando en producción van a x86

Si tenéis que empaquetar imágenes de Docker desde un ARM (Un Mac M1/M2/M3/M4...) y si después las subis a registry para que sean usadas un una máquina (EC2, por ejemplo) os dará error.

Exactamente, este error:

```bash
05-30-2024 02:05:01 PM exec /app/entrypoint: exec format error
05-30-2024 02:22:59 PM exec /app/entrypoint: exec format error
05-30-2024 02:30:01 PM exec /usr/bin/caddy: exec format error
```

Es un auténtico coñazo, la verdad.

Para arreglarlo es muy muy fácil. 

Desde Mac forzamos a usar Rosetta con Docker (cosa que lo hace OS X automáticamente) y tan solo tenemos que añadir una linea adicional a nuestro Dockerfile

Es decir, de esto:

```dockerfile
FROM caddy:2-builder AS builder

RUN xcaddy build --with github.com/baldinof/caddy-supervisor
```

A esto:

```dockerfile
FROM --platform=linux/amd64 caddy:2-builder AS builder

RUN xcaddy build --with github.com/baldinof/caddy-supervisor
```

Y ale. Ya podéis subir a vuestros registries con alegría y gozo