Skip to content

Docker Infrastructure 開発環境セットアップガイド

このドキュメントは、本プロジェクトを開発・実行するために必要なツールと初期設定についてまとめています。 VM(Debian)を新規作成した後など、環境を作る際の参考にしてください。

1. 必須ツールのインストール

以下のコマンドをルート権限(sudo)で実行し、必要なパッケージをインストールします。

bash
sudo apt-get update
sudo apt-get install -y \
    make \
    git \
    curl \
    vim \
    openssl
  • make: Makefile を使用してビルド・起動コマンドを自動化するために必須です。
  • git: バージョン管理に必要です。
  • openssl: 通信テスト(TLSハンドシェイク確認)で使用します。

2. Docker & Docker Compose のインストール

Docker InfrastructureはDockerコンテナ上で動作するため、DockerエンジンとDocker Composeプラグインが必要です。

公式スクリプトによるインストール(推奨)

bash
# Docker公式のインストールスクリプトを取得して実行
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

ユーザー権限の設定

sudo なしで docker コマンドを実行できるように、現在のユーザーを docker グループに追加します。

bash
sudo usermod -aG docker $USER
newgrp docker

注意: newgrp は一時的な反映です。完全に反映させるには一度ログアウトして再ログインしてください。

動作確認

bash
docker --version
docker compose version
docker run hello-world

すべて正常に表示されれば完了です。

3. ホスト名の解決(重要)

プロジェクト要件である local.dev というドメイン名でローカル環境にアクセスできるように、Hostsファイルを設定します。

/etc/hosts の編集

bash
sudo vim /etc/hosts

以下の行を追加してください。127.0.0.1(ローカルホスト)に対してドメインをマッピングします。

text
127.0.0.1   local.dev

login の部分はあなたのログイン名(例: local.dev)の場合もありますが、課題要件に従ってください。

4. データディレクトリの準備

docker-compose.ymlMakefile の設定により、以下のディレクトリがデータの永続化場所として使用されます。 make all で自動作成されますが、手動で作る場合は以下です。

bash
mkdir -p /home/$USER/data/wordpress
mkdir -p /home/$USER/data/mariadb

5. その他の便利ツール(任意)

gh (GitHub CLI)

GitHubの操作をコマンドラインで行うツールです。 詳細は docs/dev/setup-gh.md を参照してください。

ネットワーク確認手順とコマンド例

コンテナの起動後、ホスト側から以下のコマンドで接続を確認できます。

1. HTTPS接続 (Nginx -> WordPress)

自己署名証明書を使用しているため、-k オプションで証明書検証をスキップします。

bash
curl -k -I https://local.dev

望ましい出力例:

text
HTTP/2 200 
server: nginx/1.26.2
date: ...
content-type: text/html; charset=UTF-8
...

HTTP/2 200 または 301 Moved Permanently (リダイレクト設定等による) が返ってくればNginxとの疎通は成功です。502 Bad Gateway の場合はWordPressコンテナが起動していないか、PHP-FPMの接続に失敗しています。

コマンドオプションの解説 (curl)
  • -k (--insecure): SSL/TLS証明書の検証をスキップして接続します(自己署名証明書の場合に必須)。
  • -I (--head): レスポンスボディを取得せず、HTTPヘッダーのみを取得します。疎通確認に便利です。

2. TLSハンドシェイク確認

証明書の詳細やプロトコルバージョンを確認します。

bash
openssl s_client -connect local.dev:443 -quiet

望ましい出力例:

text
depth=0 C = JP, ST = Tokyo, L = Minato, O = MyOrganization, OU = Student, CN = local.dev
verify error:num=18:self-signed certificate
verify return:1
depth=0 C = JP, ST = Tokyo, L = Minato, O = MyOrganization, OU = Student, CN = local.dev
verify return:1

verify error:num=18:self-signed certificate は自己署名証明書のため正常です。接続がハングしたり Connection refused になる場合はポートフォワーディングやファイアウォールを確認してください。

コマンドオプションの解説 (openssl)
  • s_client: SSL/TLSクライアントとして接続するサブコマンドです。
  • -connect host:port: 接続先のホストとポートを指定します。
  • -quiet: 接続時のハンドシェイク詳細や証明書情報を省略し、最小限のセッション情報のみを表示します(デバッグ時は外すと詳細が見れます)。

3. TCPポート接続確認 (nc / netcat)

指定したポートが開いているか、TCP接続が可能かを確認します。

bash
nc -zv local.dev 443

望ましい出力例:

text
Connection to local.dev 443 port [tcp/https] succeeded!
コマンドオプションの解説 (nc)
  • -z: データを送信せず、ポートのスキャン(リスニング状態の確認)のみを行います。
  • -v: 詳細モード (Verbose)。接続成功/失敗のメッセージを表示します。succeeded! が出ればOKです。

4. FTP接続

FTPサーバーへのログイン確認を行います。

bash
ftp -p local.dev

望ましい出力例:

text
Connected to local.dev.
220 (vsFTPd 3.0.5)
Name (local.dev:username): <FTPユーザー名>
331 Please specify the password.
Password: <パスワード>
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

220 (vsFTPd ...) というバナーが表示されれば接続成功です。

コマンドオプションの解説 (ftp)
  • -p: パッシブモード (Passive Mode) で接続します。ファイアウォールやNAT環境下(Docker含む)では通常パッシブモードが推奨されます。

トラブルシューティング

"make: command not found" と表示される場合

make がインストールされていません。手順1のインストールコマンドを実行してください。

"permission denied" で Docker が動かない場合

docker グループへの追加が反映されていない可能性があります。再起動または再ログインを試してください。

"bind source path does not exist" エラーが出る場合

データディレクトリ(/home/.../data)が存在しません。make all を使うか、手動で mkdir してください。

Released under the MIT License.