是否可以基于 SCRATCH 参考构建 nodeJS 容器?

Is it possible to build nodeJS container based on SCRATCH reference?

我的要求是优化和保护 nodeJS 的基础映像。我尝试使用多阶段 docker 在 SCRATCH 上构建它,但最终容器进入崩溃状态。

正在寻找在 SCRATCH 基础上工作的示例 docker 文件。

很有可能在 docker 临时图像上构建 NodeJS 应用程序。 Scratch 上的命令需要通过指向节点可执行文件的正确路径来彻底验证,否则将导致崩溃,因为在 scratch 基础上没有命令行界面。

这是示例 NodeJS 待办事项应用程序和 git 参考的 docker 文件。

FROM siva094/node-scratch-static:1 as buildnode
#########################
#### Source code  ########
########################
FROM alpine/git as codecheckout
WORKDIR /app
RUN git clone https://github.com/siva094/nodejs-todo.git
######################
#### Code Build #####
####################
FROM node:10-alpine as sourcecode
WORKDIR /app
COPY  --from=codecheckout /app/nodejs-todo/ ./
RUN npm install --prod
###################
#### Target APP ###
##################
FROM scratch
COPY --from=buildnode /node/out/Release/node /node
COPY --from=sourcecode /app ./
ENV PATH "$PATH:/node"
EXPOSE 3000
ENTRYPOINT ["/node", "index.js"]

Git 参考 - https://github.com/siva094/nodejs-todo

Docker 参考文献:

NodeJS 完全静态构建和 NodeJS todo 应用程序

 docker pull siva094/node-fullystatic
 docker pull siva094/nodejs-scratch-todo

添加构建静态节点的参考。

源代码 URL - github.com/siva094/Dockers/blob/master/Dockerfile

FROM node:latest as builder
RUN apk --no-cache add --virtual native-deps \
  g++ gcc libgcc libstdc++ linux-headers autoconf automake make nasm python git && \
  npm install --quiet node-gyp -g
RUN npm install --quiet node-gyp -g
RUN git clone https://github.com/nodejs/node && \
    cd node && \
    ./configure --fully-static --enable-static && \
    make

FROM scratch
COPY --from=builder /node/out/Release/node /node