node.js - 使用暂存Docker镜像运行NodeJs二进制文件

标签 node.js docker binary dockerfile alpine

我们可以使用 pkg package将NodeJs应用程序转换为二进制文件。我想构建二进制文件,并与Docker scratch图像运行相同的文件。
index.js

const http = require('http')
http.createServer().listen(3000)
Dockerfile
FROM node:10 as build

COPY index.js .
RUN npm i pkg -g && pkg -t node10-alpine-x64 index.js

FROM scratch
COPY --from=build index /index

ENTRYPOINT ["/index"]

运行docker build -t index . && docker run --rm -it index时,出现此错误消息-standard_init_linux.go:211: exec user process caused "no such file or directory"

我想念什么?

最佳答案

scratch是一个没有任何文件的空镜像,您的二进制文件可能具有依赖性,并且期望某些Linux环境。尝试使用最少的Linux基本镜像而不是草稿-alpinedebianubuntu

关于node.js - 使用暂存Docker镜像运行NodeJs二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60511368/

相关文章:

javascript - 简单的 JavaScript 代码不适用于 Node.js

javascript - 如何处理没有构造函数的 JavaScript 对象

docker - 更新 Kubernetes 中的部署镜像

c - C 中的二进制文件

c - 为什么要显示二进制数需要&1和+ '0'?

java - 为什么这个 PBKDF2 函数每次都会输出不同的哈希值

javascript - 如何合并多个对象的数据

node.js - 使用 vue.js、node.js 和express.js 上传原始文件

docker - 当我将docker任务添加到Azure构建管道时构建失败

docker - "docker: ' 运行 docker compose 时组成 ' is not a docker command"