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

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

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

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

Docker

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

React.js

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

解決済

DockerでReact環境を構築した際に「FATAL ERROR: JavaScript heap out of memory」のエラーが出てしまう。

milton_rb4life
milton_rb4life

総合スコア23

docker-compose

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

Docker

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

React.js

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

1回答

0評価

0クリップ

718閲覧

投稿2022/05/03 17:12

編集2022/05/05 11:32

ご覧いただきありがとうございます。

Dockerを使ってReactをゼロから学ぶべく、React環境の構築を始めたのですが、
ビルド後の create-react-app で、エラーが発生してDocker側での設定を
調べてもなかなか解決できないので質問させていただきます。

エラーとは
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
です。

実現したいこと

Docker(docker-compose)を用いて、Nodeコンテナを構築してHelloWorld程度の簡易な環境を
作るのが目的です。

### 前提
VirtualBox : メモリ:1.5GB、プロセッサ:2
OS : Ubuntu Server 20.04
Docker: 20.10.14
docker-compose: 2.4.1

発生している問題・エラーメッセージ

shell

docker compose run --rm node sh -c "npm install -g create-react-app && create-react-app react-sample"

上記のコマンドでcreate-react-appを実行した結果、下記のエラーが発生しました。
メモリが足りないということは明らかですが、この対処法はDockerfileでメモリを拡張すれば
いいのか、Nodeに関するオプションで何かつけたほうがいいかなど見当がつかない状況です。

shell

<--- JS stacktrace ---> FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 1: 0xb57b90 node::Abort() [npm install react react-dom react-scripts cra-template] 2: 0xa701b3 node::FatalError(char const*, char const*) [npm install react react-dom react-scripts cra-template] 3: 0xd43b9e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [npm install react react-dom react-scripts cra-template] 4: 0xd43f17 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [npm install react react-dom react-scripts cra-template] 5: 0xf22ff5 [npm install react react-dom react-scripts cra-template] 6: 0xf23ae7 [npm install react react-dom react-scripts cra-template] 7: 0xf33fa1 [npm install react react-dom react-scripts cra-template] 8: 0xf34bbd v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [npm install react react-dom react-scripts cra-template] 9: 0xf1004a v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [npm install react react-dom react-scripts cra-template] 10: 0xf111d7 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [npm install react react-dom react-scripts cra-template] 11: 0xef3353 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [npm install react react-dom react-scripts cra-template] 12: 0x12ac95f v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [npm install react react-dom react-scripts cra-template] 13: 0x16d8539 [npm install react react-dom react-scripts cra-template] Aborting installation. npm install --no-audit --save --save-exact --loglevel error react react-dom react-scripts cra-template has failed. Deleting generated file... node_modules Deleting generated file... package.json Deleting react-sample/ from /usr/src/app

該当のソースコード

下記「Dockerfile」「docker-compose.yml」は同じ回答に配置させています。

1: Dockerfile

Dockerfile

FROM node:18.0.0 WORKDIR /usr/src/app

2: docker-compose.yml

yaml

version: '3' services: node: build: context: . dockerfile: Dockerfile volumes: - ./:/usr/src/app command: sh -c "cd react-sample && yarn start" ports: - "3000:3000" stdin_open: true

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

hoshi-takanori

2022/05/03 18:28

その Ubuntu Server はどうやって動いてて、メモリはどのくらい割り当ててますか?
milton_rb4life

2022/05/04 00:16

VirtualBox で メモリ:1.5GB、プロセッサ:2に設定しました。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

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

Docker

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

React.js

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