COOSY BLOG
  • HOMEホーム

  • SERVICEサービス

    • サービスTOP
    • Web制作
    • ブランディング
    • デジタルマーケティング
    • 戦略企画
    • DX推進・システム開発
    • グローバル展開
  • WORK制作実績

    • 制作実績TOP
    • コーポレートサイト
    • 採用サイト
    • ECサイト
    • プロモーション
    • サービスサイト・SaaS
    • システム開発
  • ABOUTクーシーについて

    • クーシーについて
    • 会社情報
    • 私たちが大切にしていくこと
    • お知らせ
    • クーシーラボ岩手
    • ロンドン支社
    • ミャンマー支店
  • BLOGブログ

  • RECRUITリクルート

  • Contactお問い合わせ

BLOG MENU

  • BLOGトップ
  • 目的別

    • 目的別TOP
    • コーポレートサイト
    • ECサイト
    • オウンドメディア
    • 採用サイト
    • プロモーション
    • Webサービス
    • LP
    • ブランディング・CI
  • Web制作ハウツー

    • Web制作ハウツーTOP
    • UIUX・サイト設計
    • WebデザインTips
    • PM/ディレクション
    • フロントエンド(HTML/CSS)
    • 撮影・動画編集
    • ライティング
    • CMS
    • Web制作ツール
    • イラスト
  • システム開発

    • システム開発TOP
    • プログラミング
    • EC構築
    • CMS開発・構築
    • サーバ構築
    • データベース構築
    • セキュリティー
  • Webサイト運用のコツ

    • Webサイト運用のコツTOP
    • サイト運用・管理・保守
    • コンテンツ運用
    • CRM(顧客管理)
  • Webマーケティング

    • WebマーケティングTOP
    • SEO対策・トレンド
    • コンテンツ制作・SEOライティング
    • アクセス解析
    • Web広告
    • Web集客ハウツー
  • 特集

    • 特集TOP
    • Web最新トレンド
    • カルチャー
    • ガジェット

Share on

  • Xでシェアする
  • Facebookでシェアする
  • このエントリーをはてなブックマークに追加

【DockerでReactの環境構築】エンジニア1年生と学ぶコンテナ構築までの手順

  • システム開発
  • プログラミング
【DockerでReactの環境構築】エンジニア1年生と学ぶコンテナ構築までの手順

今回は、Dockerを使用してReact(React.js)の環境を構築する手順を紹介します。

Dockerでの環境構築は慣れていない人にはやや複雑です。本記事では画像つきで、初心者でもできるようにわかりやすく解説します。

実際に環境構築を行いながら書きましたので、トラブルもありました。その時の対応についてもそのまま載せてありますので、あなたのケースでお役に立つかもしれません。

ではいってみましょう。

React.jsとは?

React.jsはReactと同じもので、「React」と書かれたり「React.js」と書かれたりします。

React.jsは、Facebookが開発したJavaScriptライブラリです。コンポーネントと呼ばれる小さな部品を組み合わせて大きなアプリケーションを構築したり、仮想DOMと呼ばれる技術を使用して高速なパフォーマンスを実現することができます。

React.jsは、ウェブアプリケーションの構築に広く使用されており、人気のあるフレームワークです。React Nativeという派生版を使用することで、モバイルアプリケーションの開発も行えます。

React.jsの特徴

React.jsには以下3つの特徴があります。

コンポーネント指向で拡張が容易

コンポーネント指向とは、プログラムをコンポーネント(部品)に分割し、それらを組み合わせることでアプリケーションを開発するという考え方です。コンポーネント指向で開発することで、仕様変更や拡張が容易になります。

仮想DOMにより処理が高速化される

DOM(Document Object Model)は、HTML/CSS/JavaScriptによってブラウザに構築されたツリーのことです。

React.jsでは情報が更新されてもすぐにDOMを操作しません。ひとまず仮想DOMと呼ばれるReact.js内部で生成されたオブジェクトを操作します。そして操作前と操作後の差分を検知して、DOMに情報を反映させるのです。

これにより、DOMの操作が最小限に抑えられ、高速なアプリケーションの開発が可能になります。

React Nativeによるモバイルアプリケーション開発が可能

React Nativeを使用すれば、React.jsのスキルを使用してiOS・Android向けのモバイルアプリケーションを開発することができます。

スマホアプリ開発ではiOSならSwift、AndroidならKotlinやJavaを使用して開発するのが主流です。しかしReact Nativeを使用すれば、iOSとAndroidの両方に向けたアプリケーションを開発することができます。

React.jsの環境構築

では、React.jsの環境を構築していきましょう。手順は以下のとおりです。

  1. Dockerをインストールして起動する
  2. ディレクトリを作成する
  3. Dockerfileとdocker-compose.ymlを作成する
  4. イメージをビルドする
  5. プロジェクトを作成する
  6. コンテナを起動する

1. Dockerをインストールして起動

Docker docsからお使いのOSに合ったDocker.dmgファイルをダウンロードして、インストールするだけです。

とくに難しくないですが、やり方を見ておきたい方はこちらの記事をご覧ください。

【入門】Dockerで環境構築|WordPress環境をローカルPCに作ろう!


インストールしたら起動します。以下はDockerを起動した状態です。

Docker起動画面

2. ディレクトリを作成する

各種ファイルを入れるディレクトリ(フォルダ)を作ります。ディレクトリ構成は以下のとおりです。

場所 /Users/user/Public/docker-react
構成 docker-react
┝ app
┝ Dockerfile
┝ docker-compose.yml

少し解説すると、「docker-react」というフォルダを「/Users/user/Public/docker-react」に作ります。フォルダを作るディレクトリは任意でけっこうです。

「docker-react」の中にはフォルダとファイルが入っています。「app」は空のフォルダで、作業ディレクトリとして使います。「Dockerfile」と「docker-compose.yml」はファイルです。


では、作業をしていきます。まずは「docker-react」フォルダの中に「app」フォルダだけ作りましょう。以下のようになります。

「docker-react」フォルダの中に「app」フォルダを作成

3. Dockerfileとdocker-compose.ymlを作成する

「docker-react」フォルダの中にDockerfileを作成します。お使いのエディターで新規ファイルを作り、以下をコピペしてください。

# ベースイメージの指定
FROM node:lts
# 作業ディレクトリの指定
WORKDIR /usr/src/app
Dockerfile

できたら、「Dockerfile」という名前で保存。これで1つできあがりです。

「Dockerfile」という名前で保存

同様に「docker-compose.yml」も作っていきます。新規ファイルを開いて以下をコピペしてください。

version: "3.9"
services:
  app:
    container_name: app
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
    - type: bind
      source: ./app
      target: /usr/src/app
    #"react-app"の部分がプロジェクト名になる
    command: sh -c "cd react-app && yarn start" 
    ports:
      - 3000:3000
    stdin_open: true #標準入力をコンテナと紐付ける

できたら「docker-compose.yml」という名前で保存します。

「docker-react」フォルダに2つのファイルが入っていたらOKです。

「docker-react」フォルダの中身

4. イメージをビルドする

ファイルが作成できたら、コマンドでイメージをビルドします。Macは「ターミナル」、Windowsは「コマンドプロンプト」を起動。
まずは「docker-react」へ移動するコマンドを実行します。「cd」の後ろには、「docker-react」があるディレクトリのパスを入れてください。

cd /Users/user/Public/docker-react

Macの場合、うまくいくと以下のようにフォルダの名前が表示されます。

「docker-react」へ移動するコマンドを実行

続いて以下のコマンドを実行します。

docker-compose build

実行したら、以下のポップアップが出ました。私のPCでは「コマンドラインデベロッパーツール」のインストールが必要だったようで、まずはこちらのインストールです。インストールは数分かかりました。

「コマンドラインデベロッパーツール」のインストールポップアップ

インストール後に再度「docker-compose build」を実行します。以下のようになったら完了です。

「docker-compose build」を実行

5. プロジェクトを作成する

イメージがビルドできたら、以下のコマンドでプロジェクトを作成します。

docker-compose run --rm app sh -c 'npx create-react-app react-app --template typescript'

少し内容について解説すると、以下のような命令が入っています。

オプション/コマンド 機能
--template typescript typescriptをインストールする
--rm コンテナを起動後削除する
sh -c ~ コンテナ起動後に実行するコマンド

このコマンドを実行すると、いったん「ok to preceed? (y)」と聞かれますので、「y」と入力してリターン。するとコマンドがガリガリ動き出します。

「ok to preceed? (y)」と聞かれますので、「y」と入力してリターン

コマンドが実行されると、以下の流れで作業が進みます。

  1. コンテナ起動
  2. sh -c 'npx create-react-app react-app --template typescript' でプロジェクト作成
  3. コンテナ削除

docker-compose.ymlで ホストの /appと コンテナの /usr/src/appがマウントされているため、上記コマンドを実行後のディレクトリは以下のようになっているはずです。

場所 /Users/user/Public/docker-react
構成 docker-react
┝ app
  └ react-app
┝ Dockerfile
┝ docker-compose.yml

「app」フォルダを見ると、「react-app」ができていました!

「react-app」の確認

6. コンテナを起動する

プロジェクトが作成できたら、コンテナを起動します。以下のコマンドを実行。

docker-compose up -d

うまくいったので、以下のとおり「Container app Started」となっています。

「Container app Started」の確認

コンテナ起動後、https://admin.coosy.co.jp:3000 にアクセスし、以下の画面が表示されれば、環境構築完了です。(ロゴかっこいい)

環境構築完了画面

まとめ

以上、Dockerを使ってReact.jsの環境を構築する手順を解説しました。Dockerを使えば手軽に環境を構築することができます。

React.jsは高速なWebサイトを作成することができる人気のライブラリです。FacebookやInstagram、NetflixなどもReact.jsが使用されています。今回立ち上げた環境でReact.jsの開発を進めてみてはいかがでしょうか。(筆者も勉強中です)


Dockerとは?初心者のためにメリットと基本的な使い方を解説

クーシーブログ編集部

この記事を書いた人

クーシーブログ編集部

1999年に設立したweb制作会社。「ラクスル」「SUUMO」「スタディサプリ」など様々なサービスの立ち上げを支援。10,000ページ以上の大規模サイトの制作・運用や、年間約600件以上のプロジェクトに従事。クーシーブログ編集部では、数々のプロジェクトを成功に導いたメンバーが、Web制作・Webサービスに関するノウハウやハウツーを発信中。

お問い合わせはこちらから

Web制作デザイン、丸ごとお任せ

お問い合わせする

2023/06/26

テキスト:鈴木優作 デザイン:大坂間琴美

Share on

  • Xでシェアする
  • Facebookでシェアする
  • このエントリーをはてなブックマークに追加

プログラミングの関連記事はこちら

  • 【入門】Next.jsとは? Reactとの違いや利点をWeb制作会社がわかりやすく解説

    Next.jsは、Reactの利点を活かしつつ、パフォーマンスとSEOを強化するフレームワークです。この記事では、Next.jsの強力な機能や、Reactとのページ生成の違いを比較しながら解説します。

    • プログラミング
    • Web最新トレンド
  • Laravel 11から12への変更点とアップデート方法【注目の新機能まとめ!】

    Web制作会社クーシーが、Laravel 12の変更点とアップデート方法をわかりやすく解説! パフォーマンス向上やセキュリティ強化、開発体験を向上させる新機能もご紹介します。

    • プログラミング
  • Astro.jsとは? 高速・軽量の新世代フレームワークをWeb制作会社が詳しく解説

    Webサイトの表示速度にお悩みですか? 高速・軽量な次世代フレームワーク「Astro.js」が解決の鍵になるかもしれません。特徴やメリットなど、Web制作会社のクーシーがわかりやすく解説します。

    • プログラミング
  • 【はじめてのPHP】初心者向けに特徴と使い方をやさしく解説

    PHPは、Web開発で重要な役割を果たすプログラミング言語です。身近なところではWordPressに使われています。

    • プログラミング
  • 【図解】APIとは?メリットや連携事例をわかりやすく解説

    APIはアプリやサービス同士をプログラムでつなぐ仕組みのことです。この記事ではメリットや連携事例をわかりやすく説明しています。

    • プログラミング
  • 【コード付】v-ifとv-forの使い方!Vue.jsで一覧ページのテンプレート作成

    Vue.jsに興味がある、使ってみたいけど実装の具体的なイメージがわからない人は多いと思います。本記事ではWebサイトでよくある「記事一覧」を例に、Vue.jsを使って実装する方法を紹介します。

    • プログラミング
  • 複雑なAjaxで悩みがち!処理をうまく解決する3つの方法

    今回はAjaxのご紹介と実装方法を解説します。ページ全体の読み込みをしないで、非同期通信(Ajax)でページ内のコンテンツを一部だけ更新・生成することができます。

    • プログラミング
  • Youtube動画を埋め込む方法!知っておきたいカスタマイズ16選

    Webサイト制作で、ビジュアルやビデオなどの掲載に、YouTubeを使うことがあります。単純に動画を流すだけではなく、カスタマイズを行って、より近いイメージに変更できればと思うケースがありますよね。

    • 撮影・動画編集
    • プログラミング

COOSYの
制作実績

UIUXと美しさを両立させた、クーシーが誇る成功事例一覧。
課題解決のアイデア満載です。

制作実績を見る

Web制作の課題はクーシーが解決します

  • DX推進・システム開発

  • アプリ開発

    情報設計とUIUXデザインを強みにユーザーに寄り添うアプリを開発。Webとの連携や拡張性の高い設計で課題を解決します。

  • Web制作

    コーポレートサイト、採用サイト、ECサイトまで。最新AI技術を掛け合わせ、各サイトの特性に合わせたUIUX設計を実現します。

CATEGORY LIST

  • すべての記事一覧

  • 目的別

    • 目的別TOP
    • コーポレートサイト
    • ECサイト
    • オウンドメディア
    • 採用サイト
    • プロモーション
    • Webサービス
    • LP
    • ブランディング・CI
  • Web制作ハウツー

    • Web制作ハウツーTOP
    • UIUX・サイト設計
    • WebデザインTips
    • PM/ディレクション
    • フロントエンド(HTML/CSS)
    • 撮影・動画編集
    • ライティング
    • CMS
    • Web制作ツール
    • イラスト
  • システム開発

    • システム開発TOP
    • プログラミング
    • EC構築
    • CMS開発・構築
    • サーバ構築
    • データベース構築
    • セキュリティー
  • Webサイト運用のコツ

    • Webサイト運用のコツTOP
    • サイト運用・管理・保守
    • コンテンツ運用
    • CRM(顧客管理)
  • Webマーケティング

    • WebマーケティングTOP
    • SEO対策・トレンド
    • コンテンツ制作・SEOライティング
    • アクセス解析
    • Web広告
    • Web集客ハウツー
  • 特集

    • 特集TOP
    • Web最新トレンド
    • カルチャー
    • ガジェット
  • WORKS

    Webサイト・アプリなどの
    様々な実例・制作実績のご紹介

    WORKS
  • CONTACT CONTACT

    Webサイトのご相談、お見積もりはこちらから

    Webサイトのご相談、お見積もりなど
    お気軽にお問い合わせください

ホーム

  • TOP
  • COOSY BLOG
  • 【DockerでReactの環境構築】エンジニア1年生と学ぶコンテナ構築までの手順
ページトップへ
  • TOP
  • SERVICE

    • ブランディング
    • デジタルマーケティング
    • 戦略企画
    • DX推進・システム開発
    • グローバル展開
    • Web制作
  • WORKS

    • コーポレートサイト
    • 採用サイト
    • ECサイト
    • プロモーションサイト
    • サービスサイト
    • システム開発
  • ABOUT

    • 会社情報
    • 私たちが大切にしていくこと
    • お知らせ
    • クーシーラボ 岩手
    • ロンドン支社
    • ミャンマー支店
  • RECRUIT

    • ディレクション部
    • デザイン部
    • システム開発部
    • アカウント・プランニング部
    • Webマーケティング事業部
    • 人事・総務部
    • オフショア
    • グローバル事業部
  • BLOG

    • 目的別
    • Web制作ハウツー
    • システム開発
    • Webサイト運用のコツ
    • Webマーケティング
    • 特集

COOSY SNS

  • facebook
  • X
  • お問い合わせ
  • Privacy policy
  • Site Policy
  • Security Policy
© COOSY All Rights Reserved.
cursor