我有一个默认的 CI 镜像,假设其名称为 ci:default
,并且它可以且必须由 -d
参数运行。我想在其中安装一些 npm
包,然后使用新镜像作为我的自定义 CI 镜像。这是我尝试做的事情:
docker pull ci:default
使用
docker run -it ci:default/bin/bash
运行并进入容器。在该容器中,使用
npm i -g XXX
安装我需要的 npm 软件包,并且它可以工作。使用
apt-get update
保存我对容器所做的更改。退出容器,然后使用
docker commit
命令创建我的自定义镜像,我们将其命名为ci:customized
。
正如我所想,到目前为止一切顺利。但是当我尝试使用 docker run -d ci:customized 运行新镜像时,它无法成功运行,并且我不知道我什么时候做错了,因为我是 docker 新手。
有人可以告诉我如何实现我的目标吗?
最佳答案
我不知道你的确切问题是什么,因为你没有发布错误消息,但有一种更好的方法可以使用 dockerfiles 创建包含你想要的包的镜像
创建一个名为Dockerfile
的文件
你可以在其中做类似的事情
FROM ci:default
RUN npm install
然后您可以使用 docker build 将其构建到镜像中。检查the documentation对于 docker build 但你应该只需要类似 docker build --tag ci:customized
这样做的好处是您现在有了一个文本文件,记录了如何设置图像,这样当您稍后需要修改它时,您就不会忘记之前执行过哪些步骤。
关于docker - 如何在docker容器中正确安装npm包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54662719/