Docker Alpine Linux에서 nvm 사용 가능

6139 단어 DockernvmAlpinetech
다음 해결 방법은 치명적인 문제점이 있습니다!자세한 내용은 최후 섹션을 참조하십시오.🙏

해결책


다음은 Docker file입니다. Alpine linuxnvm로 처리할 수 있습니다.
Dockerfile(alpine)
FROM alpine

# nvmのインストールに必要なモノとnodeのコンパイルに必要なモノをインストール
RUN apk add -U curl bash ca-certificates\
	openssl ncurses coreutils python2\
	make gcc g++ libgcc linux-headers\
	grep util-linux binutils findutils

# shellをbashに変更
SHELL [ "/bin/bash", "-c" ]

# nvmをインストール
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

# lts版のnodeをインストール
RUN . $HOME/.nvm/nvm.sh && \  # 環境変数を適用
    nvm install -s --lts && \ # nodeをインストール&ビルド
    nvm use --lts && \ # 使用するnodeのバージョンを設定
    node -v && npm -v && \ # バージョンの確認
    npm i -g yarn # yarnも一応インストール

# nvmの初期化するように.bashrcに書き込む
RUN echo -e "\
export NVM_DIR=\"\$HOME/.nvm\"\n\
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"\n\
" >> ~/.bashrc

# bashをデフォルトに設定する
ENTRYPOINT [ "/bin/bash" ]

Ubuntu 버전


ubuntu를 사용할 수 있다면 더욱 간단하게 설정할 수 있습니다.
Dockerfile(ubuntu)
FROM ubuntu:20.10

RUN apt update

# nvmのインストールに必要なモノをインストール
RUN apt install -y curl git

# shellをbashに変更
SHELL [ "/bin/bash", "-c" ]

# nvmをインストール
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

# lts版のnodeをインストール
RUN . $HOME/.nvm/nvm.sh && \
    nvm install --lts && \
    nvm use --lts && \
    node -v && npm -v && \
    npm i -g yarn

구체적인 해설


alpine 버전에 nvm를 보통 설치하고 node를 설치하면 오류가 발생합니다😢 알피니언 버전에는 최소한의 필수품만 담겨있기 때문에 당연하다고 하지만 공식적인 창고에는 이유가 적혀 있으니 제가 소개해 드리겠습니다.
https://github.com/nvm-sh/nvm#installing-nvm-on-alpine-linux
상기 nvm의 창고에서 인용한 것은 다음과 같다👇
Alpine Linux, unlike mainstream/traditional Linux distributions, is based on BusyBox, a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - musl. This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply nvm install X on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist"errors if you try that.
There is a -s flag for nvm install which requests nvm download Node source and compile it locally.
한 마디로 하면,alpine는 node를 설치해서 구축해야 합니다!그렇습니다.
따라서 nvm install-s는 반드시 납품 옵션을 통해 구축해야 한다.
node 빌딩은 시간이 오래 걸려요!내 환경2125.8s(35분 소요)🤪

Docker file의 주의 사항


오류 발생 예
# 環境変数を適用
RUN . $HOME/.nvm/nvm.sh

# lts版のnodeをインストール
RUN nvm install -s --lts
위에서 말한 바와 같이 단독RUN에서 nvm 초기화와 node 설치를 실행할 때
nvm: command not found
이런 오류가 발생할 수 있으니 주의하세요.
올바른 방법은 반드시 통일적으로 집행해야 한다는 것이다👇
오류가 발생하지 않는 예
# 環境変数を適用し、lts版のnodeをインストール
RUN . $HOME/.nvm/nvm.sh && nvm install -s --lts

최후


nvm를 사용하지 말고 연상 같은 것을 사용하는 것이 좋다😕
결과적으로 구축 시간이 너무 길어서 사용할 수 없습니다😒
ubuntu 버전이면 구축 안 해도 돼요. 한번 써봐도 돼요...
여기까지 읽어주셔서 감사합니다.🙏
기사가 잘못됐다면 리뷰 등을 통해 말해줬으면 좋았을 텐데.
이게 다른 사람의 참고가 되었으면 좋겠어요.
그럼 이따 봐요.👋

좋은 웹페이지 즐겨찾기