我有Dockerfile
。当前用户为root
。该脚本将NVM_DIR
设置为/opt/nvm
。该脚本通过curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
命令安装NVM(https://github.com/creationix/nvm)。我将入口点设置为ENTRYPOINT ["npm", "run"]
,将命令设置为CMD ["start"]
。
然后我尝试通过Docker Compose启动它。现在,由于NVM安装程序脚本将以下代码添加到~/.bash_profile
,~/.zshrc
,~/.profile
或~/.bashrc
文件中。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
正如您所看到的,NVM_DIR
设置为"$HOME/.nvm"
,因为我将NVM安装到/opt/nvm
,因此我们的情况不正确。所以我在Docker Compose文件中设置NVM_DIR
变量:
environment:
- NVM_DIR=/opt/nvm
但我知道这是一个非交互式shell。但这并不起作用。我怀疑NVM不是由非交互式shell提供的。
通过Docker Compose运行Docker镜像时如何获取/opt/nvm/nvm.sh
文件?