如何在 docker 容器中正确安装 npm 包
How to install npm packages correctly in docker container
我有一个默认的 CI 图像,假设它的名字是 ci:default,它可以,而且必须是 运行,由“-d”参数。我想在其中安装一些 npm 包,然后使用新图像作为我自定义的 CI 图像。这是我尝试做的事情:
docker拉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" 来 运行 新图像时,它无法 运行 成功,而且我不知道什么时候做错了,因为我是 [=49] 的新手=].
有人可以告诉我如何实现我的目标吗?
我不知道你的确切问题是什么,因为你没有 post 一条错误消息,但是有一个更好的方法来使用你想要的包创建图像 docker文件
创建一个名为 Dockerfile
的文件
在里面你可以做类似
的事情
FROM ci:default
RUN npm install
然后您可以使用 docker build 将其构建到图像中。检查 the documentation 是否有 docker build 但你应该只需要像 docker build --tag ci:customized
这样的东西
这样做的好处是您现在有一个文本文件记录了如何设置您的图像,所以当您以后需要修改它时您不会忘记之前执行的步骤。
我有一个默认的 CI 图像,假设它的名字是 ci:default,它可以,而且必须是 运行,由“-d”参数。我想在其中安装一些 npm 包,然后使用新图像作为我自定义的 CI 图像。这是我尝试做的事情:
docker拉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" 来 运行 新图像时,它无法 运行 成功,而且我不知道什么时候做错了,因为我是 [=49] 的新手=].
有人可以告诉我如何实现我的目标吗?
我不知道你的确切问题是什么,因为你没有 post 一条错误消息,但是有一个更好的方法来使用你想要的包创建图像 docker文件
创建一个名为 Dockerfile
在里面你可以做类似
的事情FROM ci:default
RUN npm install
然后您可以使用 docker build 将其构建到图像中。检查 the documentation 是否有 docker build 但你应该只需要像 docker build --tag ci:customized
这样做的好处是您现在有一个文本文件记录了如何设置您的图像,所以当您以后需要修改它时您不会忘记之前执行的步骤。