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

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

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

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

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

Docker

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

Q&A

解決済

1回答

2852閲覧

【docker】webpackdで必要なパッケージをインストールできない

dxo

総合スコア16

docker-compose

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

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

Docker

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

0グッド

0クリップ

投稿2020/05/01 08:58

編集2020/05/02 04:19

$ docker-compose run --rm web yarn install --check-files
を叩いた時に、以下のようなエラーが発生

error *****@0.1.0: The engine "node" is incompatible with this module. Expected version "12.x". Got "10.15.2" error Found incompatible module. info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

試したこととして、以下2つです。
・node バージョンをv10.15.2やv12.0.0を変更
・yarn upgrade

解決方法をご教授ください。
よろしくお願い致します。

【補足情報】
docker-compose.yml

version: '3' services: db: build: context: . dockerfile: ./.docker/postgresql/Dockerfile volumes: - ./.docker/postgresql/volumes:/var/lib/postgresql/data environment: - DATABASE_USER=postgres - DATABASE_PASSWORD=password web: tty: true stdin_open: true build: context: . dockerfile: ./.docker/rails/Dockerfile command: bundle exec foreman start -f Procfile.dev ports: - "3000:3000" - "8000:8000" volumes: - .:/forple-pf - ./.docker/rails/volumes:/usr/local/bundle environment: - DATABASE_USER=postgres - DATABASE_PASSWORD=password - BUNDLE_APP_CONFIG="/forple-pf/.bundle" depends_on: - db

・node バージョンをv10.15.2やv12.0.0を変更

$ nvm install v10.15.2 $ nvm alias default v10.15.2

こちらで、再度、
docker-compose run --rm web yarn install --check-files
を試しましたが、同じエラーが発生したため、

$ nvm install v12.0.0 $ nvm alias default v12.0.0

こちらのバージョンをインストールして、再度、
docker-compose run --rm web yarn install --check-files
を試しましたが、同じエラーが発生致しました。

・yarn upgrade

$ yarn upgrade $ docker-compose run --rm web yarn install --check-files

こちらも試してみましたが、結果同じエラーが発生致しました。

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

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

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

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

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

mit0223

2020/05/02 00:34

docker-compose.yml の内容を貼ってください。また、試したことに記載されている「node バージョンをv10.15.2やv12.0.0を変更」とはどのような操作をしたのか詳細な手順とそのときの結果を記載してください。
dxo

2020/05/02 04:22

ご返答いただき誠にありがとうございます。 ご指示いただきました件、補足情報として追記させていただきました。 ご確認のほどよろしくお願い致します。
guest

回答1

0

ベストアンサー

$ nvm install v12.0.0

$ nvm alias default v12.0.0

こちらは docker exec で起動したコンテナの中で実行されているものと思いますが、

docker-compose run --rm web yarn install --check-files

でコンテナを実行している場合、--rm オプションによりコンテナを終了するとコンテナは削除されます。その後、もう一度同じコマンドで起動すると新しいコンテナが起動します(もとの状態に戻ります)ので、 nvm install した内容は失われています。

web コンテナをビルドする Dockerfile の中で nodejs の最新版をインストールされるようにされていはいかがでしょうか?Ubuntu16.04で任意のバージョンのNode.jsをインストールする方法などを参考に yarn で n をインストールして、nodejs の安定版をインストールしてください。

Dockerfile

1... 2RUN yarn global add n && n stable

修正後、 docker-compose build でイメージをビルドすれば、そのイメージの中に node の v12.0.0 がインストールされるというわけです。
そういう意味では yarn isntall も Dockerfile の中でビルド時に実行すべきものと思われます。

投稿2020/05/02 07:00

編集2020/05/04 00:38
mit0223

総合スコア3401

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

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

dxo

2020/05/02 09:48

ご回答いただき誠にありがとうございます。 ご指摘いただきましたように、 Dockerfileを修正し、 ``` FROM postgres:11 ENV LANG C.UTF-8 ENV TZ UTC RUN nvm install v12.0.0; nvm alias default v12.0.0 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ``` `docker-compose build` をしたのですが、以下のようにエラーが発生しており、 ``` Building db Step 1/5 : FROM postgres:11 ---> 762b31551a0d Step 2/5 : ENV LANG C.UTF-8 ---> Using cache ---> efae5d1caa60 Step 3/5 : ENV TZ UTC ---> Using cache ---> c1a4190cc051 Step 4/5 : RUN nvm install v12.0.0; nvm alias default v12.0.0 ---> Running in e91789d97da3 /bin/sh: 1: nvm: not found /bin/sh: 1: nvm: not found ERROR: Service 'db' failed to build: The command '/bin/sh -c nvm install v12.0.0; nvm alias default v12.0.0' returned a non-zero code: 127 ``` 立ち往生しております。
mit0223

2020/05/02 13:08

問題になっているのは web のコンテナの方なので ./.docker/postgresql/Dockerfile には修正は不要です。もとに戻してください。webのコンテナのDockerfile を修正して試してみてください。 ./.docker/rails/Dockerfile
dxo

2020/05/03 08:13

ご返答いただき誠にありがとうございます。 大変失礼致しました。ご指摘いただきましたように、 ./.docker/rails/Dockerfile FROM ruby:2.6.5 ENV LANG C.UTF-8 RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list RUN apt-get update -qq && apt-get install -y nodejs postgresql-client yarn RUN gem install bundler ENV APP_HOME /forple-pf RUN mkdir -p $APP_HOME WORKDIR $APP_HOME COPY Gemfile $APP_HOME/Gemfile COPY Gemfile.lock $APP_HOME/Gemfile.lock COPY . $APP_HOME ENV TZ UTC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN nvm install v12.0.0; nvm alias default v12.0.0 # コンテナ起動時にスクリプトを実行 COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 # メインプロセスの開始 CMD ["rails", "server", "-b", "0.0.0.0"] 上記記載を致しました。 その後、docker-compose buildしたところ、 以下エラーが発生しております。 Building db Step 1/4 : FROM postgres:11 ---> 762b31551a0d Step 2/4 : ENV LANG C.UTF-8 ---> Using cache ---> efae5d1caa60 Step 3/4 : ENV TZ UTC ---> Using cache ---> c1a4190cc051 Step 4/4 : RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ---> Using cache ---> 82d41ff26d02 Successfully built 82d41ff26d02 Successfully tagged forple-pf-master_db:latest Building web Step 1/19 : FROM ruby:2.6.5 ---> 8f309d9e27ea Step 2/19 : ENV LANG C.UTF-8 ---> Using cache ---> 6a7691b56385 Step 3/19 : RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list ---> Using cache ---> 77652d5954b7 Step 4/19 : RUN apt-get update -qq && apt-get install -y nodejs postgresql-client yarn ---> Using cache ---> 0ae4018e6097 Step 5/19 : RUN gem install bundler ---> Using cache ---> 60f1257006fc Step 6/19 : ENV APP_HOME /forple-pf ---> Using cache ---> c17c78e45b98 Step 7/19 : RUN mkdir -p $APP_HOME ---> Using cache ---> 758934a1dbd8 Step 8/19 : WORKDIR $APP_HOME ---> Using cache ---> cb88b7e6feda Step 9/19 : COPY Gemfile $APP_HOME/Gemfile ---> Using cache ---> d82bf0856fb6 Step 10/19 : COPY Gemfile.lock $APP_HOME/Gemfile.lock ---> Using cache ---> 4a5edad4199c Step 11/19 : COPY . $APP_HOME ---> 0ff29fdcf3d3 Step 12/19 : ENV TZ UTC ---> Running in 69722d18c094 Removing intermediate container 69722d18c094 ---> 32e5cbecf429 Step 13/19 : RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ---> Running in ef6999453b53 Removing intermediate container ef6999453b53 ---> 44d84b2248c4 Step 14/19 : RUN nvm install v12.0.0; nvm alias default v12.0.0 ---> Running in 76698867f9c7 /bin/sh: 1: nvm: not found /bin/sh: 1: nvm: not found ERROR: Service 'web' failed to build: The command '/bin/sh -c nvm install v12.0.0; nvm alias default v12.0.0' returned a non-zero code: 127
dxo

2020/05/03 08:13

お手数おかけして誠に申し訳ございませんが、ご確認いただけますと幸いです。
mit0223

2020/05/04 00:39

すみません、nodejs のインストール方法が間違っておりました。修正しましたので、もう一度試していただけますでしょうか。
dxo

2020/05/04 01:41

お手数おかけして大変失礼致しました。 ご回答のご指摘通りにしたところ、うまく進めることができました。 この度は、お力お貸しいただき誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問