我的要求是优化和保护nodeJS的基础镜像。我尝试过使用多级docker从头开始构建它,但最终的容器进入崩溃状态。
寻找一个样本docker文件在临时基础上工作。
发布于 2021-03-18 15:23:15
在docker scratch镜像上构建NodeJS应用程序是非常有可能的。Scratch上的命令需要通过指向节点可执行文件的正确路径进行彻底验证,否则将导致崩溃,因为scratch库上将没有命令行界面。
下面是示例NodeJS todo应用程序和git参考的dockerfile。
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待办事项应用程序
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 /nodehttps://stackoverflow.com/questions/66685616
复制相似问题