Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

880
Vistas
Sigue encontrando el mismo error de implementación (Error de formato ejecutivo) al enviar Node.js Docker desde local (Apple M1) a Heroku

Me sale error al liberar imagen

 2021-04-07T06:30:58.443089+00:00 heroku[web.1]: Starting process with command `node index.js` 2021-04-07T06:31:01.899268+00:00 app[web.1]: Error: Exec format error

Volví al código node.js más simple que solo requiere Express. No puedo entender lo que podría estar mal.

La configuración es la siguiente:

  • ejecutando Docker Desktop en Mac (Apple M1)
  • instaló el último Heroku, el último NPM, el último Nodo
  • trabajar con código VS
  • configuración del archivo acoplable:
 WORKDIR /app COPY package.json . RUN npm install COPY index.js . CMD ["node", "index.js"]
  • paquete.json
 { "name": "SigningV2", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "express": "^4.17.1" } }
  • perfil
 web: npm start
  • agregó dos variables en línea
 - PORT: 3000 - USE_NPM_INSTALL: TRUE (also tried without, same result)

pd: cuando se ejecuta la web local de heroku, funciona

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

0

Ok, encontré una solución de trabajo. Es Apple M1 el que está rompiendo esta configuración estándar (otra vez) :(

Necesitamos forzar la plataforma correcta para que sea compatible con Heroku. Para hacer esto, vamos a usar Docker buildx. Tenga en cuenta que no use Heroku: container push porque, hasta donde yo sé, eso no admite el forzado de diferentes plataformas.

Lo que funcionó para mí es la siguiente secuencia:

 # replace signingv2 with your own tag docker buildx build --platform linux/amd64 -t signingv2 . # make sure to use the name of your Heroku app docker tag signingv2 registry.heroku.com/signingv2/web # use docker push to push it to the Heroku registry docker push registry.heroku.com/signingv2/web # then use heroku release to activate heroku container:release web -a signingv2

Espero que Docker para Apple M1 sea compatible pronto con varias plataformas.

over 4 years ago · Santiago Trujillo Denunciar

0

La solución Jinxvar funciona. Tuve un problema diferente después

 "message": "no pg_hba.conf entry for host "xxx", user "xxx", database "xxx", SSL off"

Si usa Postgres para la base de datos y obtiene el error de salida, asegúrese de incluir esto en su configuración de pg.

 "ssl": true, "extra": { "ssl": { "rejectUnauthorized": false } },

Sin embargo, esta ruta probablemente no sea segura para ejecutarse en producción. Cuando esté listo para la producción, cambie la configuración anterior a

 "SSL": { "ca": process.env.<your-SSL-cert-var>,

}

over 4 years ago · Santiago Trujillo Denunciar

0

Modifiqué ligeramente la solución de @Jinxvar porque tenía que usar la opción --load para poder enviar la imagen. De lo contrario, ni siquiera apareció cuando ejecuté docker image ls

Esto es lo que funcionó para mí:

 $ docker buildx build --load --platform linux/amd64 -t registry.heroku.com/app_name/web . $ docker push registry.heroku.com/app_name/web:latest
over 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda