json-serverはDockerを使って起動することもできます。
『開発環境を汚したくない』、『開発環境の共有を簡単にしたい』、という理由でDockerを使用したい方もいると思います。
ここではシンプルなDockerとDocker Composeの2つの方法で起動する手順を説明したいと思います。
基本的な手順は簡単なので、すぐに導入できると思います。
Dockerでjson-serverを起動するための手順
まずはDockerを使ってjson-serverを起動するための手順について説明します。
Dockerの準備
開発環境にDockerがインストールされているかどうか確認する場合、下記コマンドを実行してみましょう。
docker -v
コマンドを実行した時、下記のようにDockerのバージョンが表示されていれば問題ありません。
バージョンが表示されなければDockerのインストールを先にやっておきましょう。
Docker version 20.10.22, build 3a2c30b
ディレクトリの構成
本章では、以下のディレクトリ構成にしています。
Docker
┣ Dockerfile
┗ data
┗ db.json
Dockerfileの作成
json-serverを起動させるためのDockerfileの内容は以下の通りです。
FROM node:latest
RUN npm install -g json-server
WORKDIR /data
CMD ["json-server", "--watch", "db.json", "--port", "3000", "--host", "0.0.0.0"]
イメージのビルドとコンテナの起動
Dockerfileの作成が完了しましたら、次にイメージのビルドです。
Dockerfileの置いてあるディレクトリ内で下記のコマンドを実行します。
※見えにくいかもしれませんが、json-serverの右にはスペースのあと’.’があることに注意
docker build -t json-server .
イメージのビルドができたら次はコンテナの起動です。
コンテナの起動は下記のコマンドを実行します。
docker run --name json-server -p 3000:3000 -v {db.jsonがあるディレクトリのパス}:/data json-server
起動確認
コンテナの起動まで完了したら、json-serverがちゃんと起動しているか確認してみましょう。
ブラウザを立ち上げて、http://localhost:3000/ にアクセスします。
下の画像のような画面が表示されていれば、json-serverが起動しています。
またResourcesの中身が作成したdb.jsonになっているかどうかの確認もしておきましょう。
db.jsonを作成していなかったり、パスが違ったりすると、自動的にデフォルトのdb.jsonが作成されます。
Docker Composeを使ってjson-serverを起動するための手順
次に説明するのは、Docker Composeを使ってjson-serverを起動するための手順です。
Docker Composeの準備
Docker Composeを使用する場合は、Dockerとは別にDocker Composeをインストールしておく必要があります。
Docker desktopをインストールしている場合は、一緒にインストールされている可能性もあります。
下記コマンドでDocker Composeがインストールされているか確認してみましょう。
docker-compose -v
コマンドを実行した時、下記のようにDocker Composeのバージョンが表示されていれば問題ありません。
バージョンが表示されなければDocker Composeのインストールを先にやっておきましょう。
Docker Compose version v2.15.1
ディレクトリの構成
本章では、以下のディレクトリ構成にしています。
Docker
┣ Dockerfile
┣ docker-compose.yml
┗ data
┗ db.json
Dockerfileの作成
Dockerfileは上で説明したものと同じです。
FROM node:latest
RUN npm install -g json-server
WORKDIR /data
CMD ["json-server", "--watch", "db.json", "--port", "3000", "--host", "0.0.0.0"]
docker-compose.ymlの作成
Docker Composeを使って起動するためにdocker-compose.ymlを作成します。
docker-compose.ymlの内容は以下の通りです。
version: "3"
services:
json-server:
container_name: json-server
build:
context: .
dockerfile: Dockerfile
tty: true
volumes:
- ./data:/data
ports:
- "3000:3000"
コンテナの起動
下記のコマンドを実行すると、イメージのビルドとコンテナの起動を一緒にやってくれます。
docker-compose up -d
起動確認
コンテナの起動まで完了したら、json-serverがちゃんと起動しているか確認してみましょう。
ブラウザを立ち上げて、http://localhost:3000/ にアクセスします。
またResourcesの中身が作成したdb.jsonになっているかどうかの確認もしておきましょう。
db.jsonを作成していなかったり、パスが違ったりすると、自動的にデフォルトのdb.jsonが作成されます。
まとめ
今回はDocker、Docker Composeの2つでjson-serverを起動するための手順について説明しました。
Dockerを導入してしまえば、json-serverが入ったコンテナの起動まではそんなに難しくないと思います。
json-serverをDockerで起動したいという方は、今回の内容を参考にしてもらえたらと思います。
コメント