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

问题描述 投票:1回答:1

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

已经有一个实现了这样的功能的docker基本映像,还是只是自己编写一个实例?

node.js docker npm continuous-integration nvm
1个回答
0
投票
创建一个如下所示的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-args必须据我测试,在第一个FROM语句之前声明。

这是一个示例,在该示例中,我使用此技巧来对流星应用程序进行气象化(将其转换为可以使用节点运行的应用程序),并将这些文件复制到具有所需节点版本的纯图像上:https://github.com/disney/meteor-base/issues/30

© www.soinside.com 2019 - 2024. All rights reserved.