フロントエンド: React, バックエンド: Go + Echo の学習用リポジトリです。 上記の学習にあたり Docker + React + Echo + MySQL で環境構築をしています。
% pwd
/path/to/react-and-echo-work
% docker-compose up --build # バックグラウンドで起動したければ `-d` もつける
% pwd
/path/to/react-and-echo-work
% cd webapp/app
% npm i
% npm run start
ホットリロードありで起動します。 ( ホットリロードは Air によって実現しています )
% pwd
/path/to/react-and-echo-work
% docker-compose -f docker-compose-backend.yml up --build # バックグラウンドで起動したければ `-d` もつける
% pwd
/path/to/react-and-echo-work
% cd restapi/api
% go run server.go
% pwd
/path/to/react-and-echo-work
% cd restapi/api
% air -c .air.toml
http://localhost:3000/
にアクセスしてください。
( npm run start
, docker-compose up --build
のどちらで起動しても、上記 URL から動作確認できます )
docker 起動時、
% docker-compose -f docker-compose-backend.yml up --build
もしくは
% docker-compose up --build
で次のエラーが出た場合、
Creating network "react-and-echo-work_backend-work-net" with driver "bridge"
ERROR: Pool overlaps with other one on this address space
ネットワークのアドレス空間が docker-compose.yml
と docker-compose-backend.yml
で重複していることが原因です。
(現状、アプリでネットワークアドレスをハードコーディングしているため、両者で同じアドレス空間を指定しています)
次のコマンドを実行して docker オブジェクトを削除してください。
% docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Are you sure you want to continue? [y/N] # <- `y` を入力
docker-compose.yml
とdocker-compose-backend.yml
でネットワークアドレスを別にしてもアプリが正常動作するようにする