docker - 如何在docker容器中正确安装npm包

标签 docker docker-container docker-image

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

  1. docker pull ci:default

  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 新手。

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

最佳答案

我不知道你的确切问题是什么,因为你没有发布错误消息,但有一种更好的方法可以使用 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/

相关文章:

ruby-on-rails - 使用Ruby on Rails Docker镜像将日志发送到ELK中的Logstash

linux - Docker——安装一个不像常规安装的卷

node.js - 如何使用docker将应用程序发布到heroku?

docker - docker容器命名模式

docker - 我可以从 docker 图像显示特定层中的数据吗?如何?

node.js - 在 Raspberry Pi 上 Dockerize MongoDB v3.4?

docker - 删除docker镜像后docker-compose失败

docker - Google Cloud Run | Angular项目部署为无服务器容器COPY失败:未指定源文件

reactjs - 无法执行从一个 docker 镜像到另一个 docker 镜像的API请求

docker - 使用 vscode 在 docker 容器中打开一个文件