Webアプリケーションの開発では、実際のサーバー構成に近い形でローカル環境を構築できると便利です。DockerとNginxを組み合わせれば、軽量かつ柔軟な開発環境を簡単に用意できます。ここではNginxを使ったローカル開発環境の構築手順を紹介します。
前提条件
– DockerとDocker Composeがインストール済みであること
– 基本的なLinuxコマンドやWebサーバーの知識があること
ディレクトリ構成
以下のようなシンプルな構成を想定します。
project/
├─ docker-compose.yml
├─ nginx/
│ └─ default.conf
└─ src/
└─ index.html
docker-compose.ymlの作成
Nginxの公式イメージをベースに、ローカルのsrcディレクトリをコンテナ内にマウントします。
version: '3.9'
services:
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./src:/usr/share/nginx/html:ro
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
Nginxの設定ファイル
default.confにNginxの設定を記述します。ここではシンプルに静的ファイルを配信する例を示します。
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
HTMLファイルを配置
src/index.htmlを作成して動作確認用の内容を記述します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Docker + Nginx 開発環境</title>
</head>
<body>
<h1>ローカル環境が動作しています!</h1>
</body>
</html>
コンテナを起動する
以下のコマンドを実行すると、Nginxコンテナが立ち上がります。
docker-compose up -d
ブラウザで http://localhost:8080 にアクセスし、作成したindex.htmlが表示されれば成功です。
動的言語との組み合わせ
Nginxは静的ファイル配信に適していますが、PHPやNode.jsなどと組み合わせたい場合は、別のサービスを追加してリバースプロキシとして利用します。例:Nginx+PHP-FPMの連携。
services:
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
- ./src:/var/www/html
depends_on:
- php
php:
image: php:8.1-fpm
volumes:
- ./src:/var/www/html
まとめ
DockerとNginxを組み合わせると、軽量で柔軟なローカル開発環境を短時間で構築できます。まずは静的ファイル配信から始め、必要に応じてPHPやNode.jsなどのアプリケーションサーバーと連携させることで、本番環境に近い開発環境を再現できます。