Mi requisito es optimizar y asegurar la imagen base para nodeJS. Intenté construirlo en SCRATCH usando la ventana acoplable de varias etapas, pero el contenedor final se estrelló.
Buscando un archivo acoplable de muestra que funcione en la base SCRATCH.
Es muy posible crear aplicaciones NodeJS en la imagen de scratch de Docker. Los comandos en Scratch deben verificarse minuciosamente señalando la ruta correcta para el ejecutable del nodo; de lo contrario, se bloqueará ya que no habrá una interfaz de línea de comandos en la base de scratch.
Aquí está el dockerfile para la aplicación de tareas pendientes de muestra de NodeJS y la referencia de git.
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"]Referencia de Git: https://github.com/siva094/nodejs-todo
Referencias de la ventana acoplable:
NodeJS compilación totalmente estática y aplicación NodeJS todo
docker pull siva094/node-fullystatic docker pull siva094/nodejs-scratch-todoAgregar referencia para construir un nodo estático.
URL del código fuente: 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