选择一个Node的Docker镜像看起来像是一件小事,但是镜像的大小和潜在漏洞可能会对你的CI/CD流程和安全造成重大的影响。那我们如何选择一个最好Node.js Docker镜像呢?
node.js极速入门课程:进入学习
我们在使用FROM node:latest
或只是FROM node
时,很容易忽略他潜在的风险。如果你不知道总体的安全风险并且把他引入到了CI/CD的流程中,那无疑是加剧了这个风险。【相关教程推荐:nodejs视频教程、编程教学】
下面这个例子非常典型,你可以从很多教程或者博客文章中看到这个Node.js Dockerfile的配置。但是这个Dockerfile的配置存在很大的问题,非常不推荐这样使用:
FROM node WORKDIR /usr/src/app COPY . /usr/src/app RUN npm install CMD "npm" "start"
登录后复制
译者注:如果需要跳过分析直接看结论,请直接滑到文末。
一个可供选择Node.js Docker镜像
当你构建一个Node.js镜像的时候,实际上有很多选择。其中就包括了Node.js核心团队维护的官方Docker镜像,以及从特定的基础镜像中选择的特殊Node.js镜像版本。还可以选择其他的,比如谷歌在distroless
项目上构建的Node.js应用程序,或者是Docker官方团队提供的一个名为scratch
的镜像。
在这些Node.js的Docker镜像中,哪一个是最适合你的呢?
让我们一个一个的去分析,了解