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

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

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

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

Docker

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

React.js

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

Q&A

解決済

1回答

1432閲覧

dockerを使ってreactを起動させたい

tkoide1213

総合スコア7

docker-compose

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

Docker

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

React.js

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

0グッド

0クリップ

投稿2021/07/28 04:50

前提・実現したいこと

docker初心者です。
Docker/React/Django/PostgresSQLを使って開発環境を構築しました。
Reactをコンテナ上で表示することができましたが、コンテナを作りなおさないとソースの修正が反映されません。
コンテナを作りなおすことなくソースの修正が反映されるようにするにはどうしたらよいでしょうか。
またdocker-compose up でコンテナを起動した場合、reactのコンテナのみ起動するのに時間がかかります。
起動までの時間を短縮する方法があればご教授頂きたいです。
宜しくお願い致します。

該当のソースコード

docker-compose.yml

version: '3' services: web: build: context: ./ dockerfile: ./backend/Dockerfile command: python /code/manage.py runserver 0.0.0.0:8000 volumes: - ./backend:/code ports: - "8000:8000" node: build: context: ./ dockerfile: ./frontend/Dockerfile volumes: - ./frontend:/usr/src/app command: sh -c "cd 【reactプロジェクト】 && yarn start" ports: - "3000:3000" db: image: postgres environment: - POSTGRES_DB=postgres - POSTGRES_USER=root - POSTGRES_PASSWORD=admin ports: - "5432:5432"

./frontend/Dokerfile

FROM node:14.13.1 WORKDIR /usr/src/app/

試したこと

yarn start をローカルのプロジェクトで行ったらソースの修正が反映されます。
コンテナ上で動かした場合にのみこの現象が起こているようです。

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

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

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

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

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

hoshi-takanori

2021/07/28 23:20

ホスト OS 上でファイルを編集しても docker 内の webpack が気づいてくれないという話なら、ホスト OS の種類にもよりますが、ファイルシステムが異なる場合はファイル変更イベントが取れないので、ポーリング (定期的にファイルが変更されてないか調べること) に変更する必要があるという話を聞いた覚えが…。 https://qiita.com/ayatas/items/e88064cebe6b3d893b0e (でも、そもそも react 開発に docker を使う必要があるのでしょうか? また、yarn start で webpack-dev-server が動いてるなら、それは開発用のサーバーで、デプロイ用じゃないことはご存知でしょうか?)
tkoide1213

2021/08/04 10:54

回答ありがとうございます。 ローカルマシンに余計なインストールをしたくなかったので必要でした。
guest

回答1

0

自己解決

docker-compose.ymlファイルに下記が必要でした。

environment:
- CHOKIDAR_USEPOLLING=true

あとreactのプロジェクト直下に.envファイルを作成し、
CHOKIDAR_USEPOLLING=true
を記載したらホットリロードができるようになりました。

投稿2021/08/04 10:57

tkoide1213

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問