質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

1096閲覧

Dockerで react_on_rails gem環境の構築でnpmエラー

nata-de-Gollira

総合スコア42

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/07/06 15:06

やろうとしている事

このサイトを参考にreact_on_rails gemの環境をdockerで構築しようとしています。

node alpineイメージを使っているのですが、npmコマンドを実行するとエラーが発生します。

エラー

npm WARN npm npm does not support Node.js v14.5.0 npm WARN npm You should probably upgrade to a newer version of node as we npm WARN npm can't make any promises that npm will work with this version. npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8. npm WARN npm You can find the latest version at https://nodejs.org/

Dockerfile(メインどころ抜粋)

FROM node:current-alpine as node FROM ruby:2.5.1-alpine as builder ENV ENTRYKIT_VERSION 0.4.0 RUN wget https://github.com/progrium/entrykit/releases/download/v${ENTRYKIT_VERSION}/entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \ && tar -xvzf entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \ && rm entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \ && mv entrykit /bin/entrykit \ && chmod +x /bin/entrykit \ && entrykit --symlink COPY --from=node /usr/local/bin/node /usr/local/bin/

なお、自環境のnpm のバージョンは 5.5.1 になっています。

エラー内容的に、npmのバージョンが5系なのがマズイと思うのですが、コンテナ内ではnpmコマンドはエラーになるため、どうすることもできず、Dockerfile内で

RUN npm install npm@latest -g

と試してみたのですが、npmのバージョンは変わらずでした。
どうすれば、npmコマンドが利用できるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

別のイメージから Node.js のバイナリーを直接持ってきていますが、
Node.jsnpm の組合わせの問題が発生しています

依存関係の管理はパッケージマネージャーにまかせましょう:

dockerfile

1FROM ruby:2.5.1-alpine as builder 2 3ENV ENTRYKIT_VERSION 0.4.0 4 5RUN wget https://github.com/progrium/entrykit/releases/download/v${ENTRYKIT_VERSION}/entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \ 6 && tar -xvzf entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \ 7 && rm entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \ 8 && mv entrykit /bin/entrykit \ 9 && chmod +x /bin/entrykit \ 10 && entrykit --symlink 11# 次の行を追加します 12RUN apk --no-cache add nodejs-npm

動作確認:

console

1$ docker build . --tag futureys/ruby-node:latest 2 3--- 略 --- 4 5Step 4/4 : RUN apk --no-cache add nodejs-npm 6 ---> Running in 5b8d09e7147a 7fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz 8fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz 9(1/9) Installing c-ares (1.13.0-r0) 10(2/9) Installing libcrypto1.0 (1.0.2t-r0) 11(3/9) Installing libgcc (6.4.0-r5) 12(4/9) Installing http-parser (2.7.1-r1) 13(5/9) Installing libssl1.0 (1.0.2t-r0) 14(6/9) Installing libstdc++ (6.4.0-r5) 15(7/9) Installing libuv (1.17.0-r0) 16(8/9) Installing nodejs (8.9.3-r1) 17(9/9) Installing nodejs-npm (8.9.3-r1) 18Executing busybox-1.27.2-r11.trigger 19OK: 71 MiB in 39 packages 20Removing intermediate container 5b8d09e7147a 21 ---> 95bca61cdf89 22Successfully built 95bca61cdf89 23Successfully tagged futureys/ruby-node:latest 24SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories. 25 26$ docker run --rm -it futureys/ruby-node:latest 27irb(main):001:0> npm --version 28Traceback (most recent call last): 29 2: from /usr/local/bin/irb:11:in `<main>' 30 1: from (irb):1 31NameError (undefined local variable or method `version' for main:Object) 32irb(main):002:0>

参考: Answer: How to install npm in alpine linux

投稿2020/07/06 15:55

編集2020/07/06 16:08
y_shinoda

総合スコア3272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_shinoda

2020/07/06 15:59

該当のイメージだと apk add --update npm が通りませんね、 ちょっとこちらでも調査してみます
y_shinoda

2020/07/06 16:09

回答修正しました、動作確認取れました
nata-de-Gollira

2020/07/21 02:09

お返事遅くなりました。 ご指摘のとおりだと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問