以下は、DockerとReactを使ってアプリを立ち上げる手順です。
プロジェクトディレクトリの作成
まず、プロジェクトディレクトリを作成します。docker-react という名前でディレクトリを作成し、その中に app ディレクトリと docker ディレクトリを作成します。
mkdir docker-react
cd docker-react
mkdir docker
Dockerfile の作成
docker ディレクトリの中に Dockerfile を作成します。以下は Dockerfile の内容です。
# ベースイメージの指定
FROM node:lts-alpine3.21
# 必要なツールをインストール
RUN apk add --no-cache git
# 作業ディレクトリの指定
WORKDIR /var/www/html
# create-react-app をインストール
RUN npm install -g create-react-app
この Dockerfile は、以下の処理を行います:
node:lts-alpine3.21ベースのイメージを使って、Node.js 環境を構築。gitをインストール。- 作業ディレクトリとして
/var/www/htmlを指定。 create-react-appをグローバルにインストール。
docker-compose.yml の作成
docker-compose.yml ファイルを docker-react ディレクトリに作成します。
version: '3'
services:
app:
build:
context: .
dockerfile: ./docker/Dockerfile
ports:
- "3000:3000"
volumes:
- ./app:/var/www/html/app
environment:
- CHOKIDAR_USEPOLLING=true
command: sh -c 'cd app && npm run winstart'
この構成では、docker-compose を使用して以下のサービスを立ち上げます:
appサービスは、Dockerfileを使用してビルドされます。- ローカルの
appディレクトリをコンテナの/var/www/html/appにマウントします。 3000ポートをコンテナとホスト間でバインドし、Reactアプリをブラウザで表示できるようにします。CHOKIDAR_USEPOLLING=trueの環境変数を設定して、Windows 環境でのファイル監視を有効にします。commandにnpm run winstartを指定して、アプリケーションを起動します。
4. Reactアプリケーションの作成
. ルートディレクトリで React アプリケーションを作成します。
mkdir app
cd app
npx create-react-app .
これにより、React アプリケーションが app ディレクトリ内に作成されます。次に、package.json に以下の scripts を追加します。
"scripts": {
"winstart": "WATCHPACK_POLLING=true react-scripts start"
}
この設定により、ファイル変更のポーリングが有効になり、Windows 環境でのホットリロードが機能します。
5. Docker コンテナの起動
すべてのファイルが揃ったら、以下のコマンドで Docker コンテナを起動します。
docker-compose up --build
これで、React アプリケーションがコンテナ内でビルドされ、http://localhost:3000 でアプリが表示されるようになります。
6. アプリケーションの確認
ブラウザでhttp://localhost:3000/を開き、React アプリケーションが表示されることを確認します。
以上で、Docker と React を使ったアプリケーションの立ち上げが完了です。
このエラーメッセージは、Reactアプリのソースコード内でweb-vitalsモジュールが見つからないという問題を示しています。
通常、web-vitalsはパフォーマンスメトリクスを測定するためのライブラリで、create-react-appのテンプレートに含まれています。
問題点:web-vitalsモジュールインストール
このエラーを解決するためには、web-vitalsモジュールをインストールする必要があります。以下の手順を試してください。
解決方法:
web-vitalsモジュールをインストール
web-vitalsを手動でインストールするために、次のコマンドを実行します。
npm install web-vitals
アプリケーションを再ビルド
インストール後にReactアプリを再ビルドします。
docker-compose up --build
これで、web-vitalsが正しくインストールされ、エラーが解消されるはずです。