DockerでReactの開発環境を構築

これまでホスト側にnode.jsやwebpackなど必要なツールを揃えてReactの環境を構築していたのですが、ホストPCの環境が汚れてお手入れが大変なので、Dockerでreactの環境を用意しました。

Dockerビルド

↓ホスト側のディレクトリ構成

react/
├── Dockerfile
└── code/

↓Dockerfileです。ほぼ何もしていませんが。。Reactを動かすにはNode.jsが必要なので、nodeのコンテナを引っ張ってきます。

FROM node:8
RUN mkdir /code
WORKDIR /code

↓ビルドの実行

docker image build -t react:v1 .

↓コンテナの起動

docker container run -dt --name react_dev -p 3000:3000 -v $(pwd):/code react:v1

nodeでテスト用にサーバーを起動するときに3000番ポートを使用するため、3000番にポートフォワードしています。

Reactアプリのセットアップ

↓Create React Appを使います。

https://facebook.github.io/create-react-app/

↓コンテナに入ります。

docker container exec -it react_dev /bin/bash

↓クイックスタート

npx create-react-app my-app

↓サーバーの起動

cd my-app
npm start

少し時間がかかりますが、そのうちサーバーが起動します。

ブラウザから http://localhost:3000/ へアクセスすると、例のようこそ画面が表示されます。

ディレクトリ構成

create-react-app を実行すると、次のようなディレクトリが作られます。

my-app/
  README.md
  node_modules/
  package.json
  public/
    index.html
    favicon.ico
  src/
    App.css
    App.js
    App.test.js
    index.css
    index.js
    logo.svg

src 内のファイルはWebpackで処理されるようになっていて、JSやCSSファイルはここに置く必要があります。

後から新しいパッケージが必要になった場合は、次のように yarnnpm コマンドでインストールします。

npm install bulma

インストールされたパッケージは node_modules に追加されます。

まとめ

めちゃくちゃ簡単に構築できました。やったね!

最近はWebpackとか深く考えずに構築できるようになってるみたいで。。本当にフロントエンドは動きが速いです。

この環境でReactを少し復習して、次はGolangやDjango REST frameworkと連携です。。!