作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
发布图像时出现错误
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
我回到了只需要 Express 的最简单的 node.js 代码。
WORKDIR /app
COPY package.json .
RUN npm install
COPY index.js .
CMD ["node", "index.js"]
{
"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"
}
}
web: npm start
- PORT: 3000
- USE_NPM_INSTALL: TRUE (also tried without, same result)
ps:运行heroku本地网络时,它可以工作
最佳答案
好的,找到了一个有效的解决方案。是 Apple M1 打破了这个标准设置(再次):(
我们需要强制 Heroku 兼容正确的平台。
为此,我们将使用 Docker buildx。注意,不要使用 Heroku:container push 因为据我所知,它不支持不同平台的强制。
对我有用的是以下顺序:
# 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
希望苹果 M1 的 Docker 很快在多个平台上得到支持。
关于node.js - 将 Node.js Docker 从本地(Apple M1)推送到 Heroku 时,继续遇到相同的部署错误(Exec Format Error),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66982720/
我是一名优秀的程序员,十分优秀!