如何使用 Docker 在 Ubuntu 上安装 nvm?

问题描述 投票:0回答:1

到目前为止我有这个:

FROM --platform=linux/amd64 amd64/ubuntu:noble
ENV TERM linux
ENV DEBIAN_FRONTEND noninteractive
SHELL [ "/bin/bash", "-c" ]
ENV SHELL /bin/bash

RUN apt update -y -q
RUN apt upgrade -y -q
RUN apt install -y -q build-essential

RUN apt-get -y install curl
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
RUN source ~/.bashrc
RUN nvm install 20.10
RUN node -v

遵循这些指南:

我的第一个问题是:

> [ 8/10] RUN source ~/.bashrc:
0.090 /bin/sh: 1: source: not found
------
Dockerfile:12
--------------------
  10 |     RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
  11 |     RUN exec bash
  12 | >>> RUN source ~/.bashrc
  13 |     RUN nvm install 20.10
  14 |     RUN node -v

也就是说,

source: not found
。所以事实证明
dash
是我猜的 ubuntu shell,所以最后一个链接建议将 shell 更改为
bash
,就像我在第一个代码片段中所做的那样。

我遇到的下一个错误是:

0.126 /bin/bash: line 1: nvm: command not found
------
Dockerfile:17
--------------------
  15 |     RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
  16 |     RUN source ~/.bashrc
  17 | >>> RUN nvm install 20.10
  18 |     RUN node -v
  19 |
--------------------
ERROR: failed to solve: process "/bin/bash -c nvm install 20.10" did not complete successfully: exit code: 127

我如何构建它才能识别最新 ubuntu 上的 nvm 命令?

附注我不想安装节点映像,我想要一个基本的 ubuntu 映像,以遵循 compiler-explorer 项目 的路线。我正在尝试安装数十个软件,而节点只是其中之一。我正在安装 rust、clang、python 和许多其他东西,并且必须将图像基于语言并不是我想要的。

他们有一个 nvm 故障排除 nvm not found 指南,但到目前为止它还没有解决我的具体问题。

运行这个来构建,这就是它失败的地方:

docker build --platform linux/amd64 --progress=plain . -t test-ubuntu

但是,我刚刚尝试过这个:

docker run --platform linux/amd64 --name test-ubuntu -d -i -t test-ubuntu
docker exec -it test-ubuntu bash
$ nvm

并且它可以识别 nvm 命令!

那么为什么构建无法识别它?

docker nvm
1个回答
0
投票

我不确定您在发布问题之前是否搜索过社区,但这里有一些答案

如何在docker中安装nvm?

https://stackoverflow.com/a/75232548/12312803

https://stackoverflow.com/a/42082874/12312803

© www.soinside.com 2019 - 2024. All rights reserved.