Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

495
Views
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 answers
Answer question

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 Report

0

En mi caso resolví el problema cambiando el Dockerfile.

Lo actualicé para extraer la imagen del nodo para linux/amd64:

 FROM --platform=linux/amd64 node:14.17.0-alpine

Reconstruir, empujar a heroku y debería funcionar bien entonces.

over 4 years ago · Santiago Trujillo Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!