将nvmrc节点版本与Docker节点基础映像匹配

我正在尝试简化对节点版本没有太多管理的较旧项目的开发和构建过程。为了构建用于测试和部署的docker映像,我希望能够提取.nvmrc文件中定义的节点版本,并使用它来提取基于节点的docker映像。

是否已经有一个docker base映像可以实现这样的功能?或者只是我自己编写一个映像的情况?

LIUYAOZU 回答:将nvmrc节点版本与Docker节点基础映像匹配

如果您可以控制docker命令,则可以在基础映像(https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact)中使用docker build参数

创建一个如下所示的docker文件:

ARG  NODE_VERSION
FROM node:${NODE_VERSION}-alpine

# Add your commands here

执行以下命令:

docker build --build-arg NODE_VERSION=$(cat .nvmrc | tr -cd [:digit:].)-f Dockerfile .

添加的tr -cd [:digit:].将删除.nvmrc文件中的任何字符,例如换行符或可选的前缀v

使用多阶段构建(https://docs.docker.com/develop/develop-images/multistage-build/)时-通常在您希望最终图像的尺寸尽可能小时使用,您的第二个图像也可以基于build-args,但是所有build-据我测试,必须在第一个FROM语句之前声明args。

在此示例中,我使用此技巧对流星应用程序进行气象化(将其转换为可以使用节点运行的应用程序)并将这些文件复制到具有所需节点版本的纯图像上:{{3} }

本文链接:https://www.f2er.com/3095796.html

大家都在问