首页 > 解决方案 > 如何在 docker 容器中正确安装 npm 包

问题描述

我有一个默认的 CI 图像,假设它的名称是 ci:default,它可以并且必须由“-d”参数运行。我想在其中安装一些 npm 包,然后将新图像用作我自定义的 CI 图像。这是我尝试做的事情:

  1. 码头工人拉CI:默认

  2. 使用“docker run -it ci:default /bin/bash”命令运行并进入容器。

  3. 在那个容器中,使用“npm i -g XXX”来安装我需要的 npm 包,它就可以工作了。

  4. 使用“apt-get update”保存我对容器所做的更改。

  5. 退出容器,然后使用“docker commit”命令创建我的自定义镜像,我们将其命名为“ci:customized”。

到目前为止一切顺利,正如我所想。但是当我尝试使用“docker run -d ci:customized”运行新镜像时,它无法成功运行,而且我不知道我什么时候做错了,因为我是 docker 新手。

有人可以告诉我如何实现我的目标吗?

标签: dockerdocker-containerdocker-image

解决方案


我不知道您的确切问题是什么,因为您没有发布错误消息,但是有一种更好的方法可以使用 dockerfiles 使用您想要的包创建图像

创建一个名为Dockerfile

在其中你可以做类似的事情

FROM ci:default
RUN npm install

然后,您可以使用 docker build 将其构建到图像中。检查docker build的文档,但您应该只需要类似的东西docker build --tag ci:customized

这样做的好处是您现在有了一个记录如何设置图像的文本文件,因此当您以后需要修改它时,您不会忘记之前执行的步骤。


推荐阅读