Docker Infrastructure 開発環境セットアップガイド
このドキュメントは、本プロジェクトを開発・実行するために必要なツールと初期設定についてまとめています。 VM(Debian)を新規作成した後など、環境を作る際の参考にしてください。
1. 必須ツールのインストール
以下のコマンドをルート権限(sudo)で実行し、必要なパッケージをインストールします。
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プラグインが必要です。
公式スクリプトによるインストール(推奨)
# Docker公式のインストールスクリプトを取得して実行
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.shユーザー権限の設定
sudo なしで docker コマンドを実行できるように、現在のユーザーを docker グループに追加します。
sudo usermod -aG docker $USER
newgrp docker注意:
newgrpは一時的な反映です。完全に反映させるには一度ログアウトして再ログインしてください。
動作確認
docker --version
docker compose version
docker run hello-worldすべて正常に表示されれば完了です。
3. ホスト名の解決(重要)
プロジェクト要件である local.dev というドメイン名でローカル環境にアクセスできるように、Hostsファイルを設定します。
/etc/hosts の編集
sudo vim /etc/hosts以下の行を追加してください。127.0.0.1(ローカルホスト)に対してドメインをマッピングします。
127.0.0.1 local.dev※ login の部分はあなたのログイン名(例: local.dev)の場合もありますが、課題要件に従ってください。
4. データディレクトリの準備
docker-compose.yml や Makefile の設定により、以下のディレクトリがデータの永続化場所として使用されます。 make all で自動作成されますが、手動で作る場合は以下です。
mkdir -p /home/$USER/data/wordpress
mkdir -p /home/$USER/data/mariadb5. その他の便利ツール(任意)
gh (GitHub CLI)
GitHubの操作をコマンドラインで行うツールです。 詳細は docs/dev/setup-gh.md を参照してください。
ネットワーク確認手順とコマンド例
コンテナの起動後、ホスト側から以下のコマンドで接続を確認できます。
1. HTTPS接続 (Nginx -> WordPress)
自己署名証明書を使用しているため、-k オプションで証明書検証をスキップします。
curl -k -I https://local.dev望ましい出力例:
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ハンドシェイク確認
証明書の詳細やプロトコルバージョンを確認します。
openssl s_client -connect local.dev:443 -quiet望ましい出力例:
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:1verify error:num=18:self-signed certificate は自己署名証明書のため正常です。接続がハングしたり Connection refused になる場合はポートフォワーディングやファイアウォールを確認してください。
コマンドオプションの解説 (openssl)
s_client: SSL/TLSクライアントとして接続するサブコマンドです。-connect host:port: 接続先のホストとポートを指定します。-quiet: 接続時のハンドシェイク詳細や証明書情報を省略し、最小限のセッション情報のみを表示します(デバッグ時は外すと詳細が見れます)。
3. TCPポート接続確認 (nc / netcat)
指定したポートが開いているか、TCP接続が可能かを確認します。
nc -zv local.dev 443望ましい出力例:
Connection to local.dev 443 port [tcp/https] succeeded!コマンドオプションの解説 (nc)
-z: データを送信せず、ポートのスキャン(リスニング状態の確認)のみを行います。-v: 詳細モード (Verbose)。接続成功/失敗のメッセージを表示します。succeeded!が出ればOKです。
4. FTP接続
FTPサーバーへのログイン確認を行います。
ftp -p local.dev望ましい出力例:
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 してください。