安装节点软件包而不重启docker compose

时间:2019-01-10 09:04:30

标签: node.js docker npm docker-compose

有没有一种方法可以在运行的docker环境中安装节点软件包而无需重新启动? 我已经通过docker-compose运行了一些容器,并且在容器运行时需要使用npm i <packagename>

到目前为止,我没有找到与Google一致的答案。

3 个答案:

答案 0 :(得分:0)

您可以使用docker exec在活动容器中运行任何命令。在您的情况下,它将是:

// Replace <your-container-id> and <your-package-name>
docker exec -it <your-container-id> "npm install <your-package-name>"

,如果您想使用容器名称代替容器ID ,则可以使用:

// Replace <your-container-id> and <your-package-name>
docker exec -it $(docker ps | grep <your-container-name> | awk '{ print $1 }') "npm install <your-package-name>"

在这里,您可以获得有关docker exec [expr.const]/4 命令的更多信息。 (文档文档)

答案 1 :(得分:0)

docker exec -it [container-id] /bin/bash

cd到工作区,然后npm install packagename。应该安装所需的软件包,并将其添加到package.json

答案 2 :(得分:0)

使用docker exec + npm install <package-name>https://docs.docker.com/engine/reference/commandline/exec/