详解nodejs之创建最小docker镜像

2020-06-17 06:23:33易采站长站整理

&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc
&& grep " node-v$NODE_VERSION.tar.xz$" SHASUMS256.txt | sha256sum -c -

$NODE_VERSION: 
指node版本,如6.10.1

RUN: 编译安装node


tar -xf "node-v$NODE_VERSION.tar.xz"
&& cd "node-v$NODE_VERSION"
&& ./configure
&& make -j$(getconf _NPROCESSORS_ONLN)
&& make install

如果不需要npm, 可以替换第三行为

&& ./configure --without-npm

$NODE_VERSION
: 指node版本,如6.10.1

RUN: 清理


apk del .build-deps
&& cd ..
&& rm -Rf "node-v$NODE_VERSION"
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt

$NODE_VERSION: 
指node版本,如6.10.1

CMD: 设置镜像入口为node


CMD [ "node" ]

上面为创建nodejs镜像必须步骤,下面的步骤根据需要添加

安装yarn

安装依赖


apk add --no-cache --virtual .build-deps-yarn curl gnupg

导入公钥


for key in
6A010C5166006599AA17F08146C2130DFD2497F5
; do
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key";
done

下载校验


curl -fSL -o yarn.js "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js"
&& curl -fSL -o yarn.js.asc "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js.asc"
&& gpg --batch --verify yarn.js.asc yarn.js
&& rm yarn.js.asc

$YARN_VERSION:
指yarn版本,如0.22

安装


mv yarn.js /usr/local/bin/yarn
&& chmod +x /usr/local/bin/yarn

清理


apk del .build-deps-yarn

c++插件

如果要支持c++插件,还需安装python,make,g++


apk add --no-cache python make g++

headers文件

有些c++模块使用过程中还需要下载node-headers文件,node-headers文件国内下载不稳定,建议也集成到镜像里,否则你可能碰到一个包编译很久没动静的情况。

参考nodejs源码下载校验步骤对headers文件进行下载校验


curl -SLO “https://nodejs.org/dist/v$NODE_VERSION/node-v${NODE_VERSION}-headers.tar.xz”