🤪

Dockerのコンテナ内でのドキュメントルートを変更する手順

2024/02/06に公開

コンテナのベースイメージにはphp:8apacheを使っています。

1. ドキュメントルートに設定したいディレクトリを用意する

今回はワークディレクトリが/var/www/htmlにであると仮定します。
この場合デフォルトのドキュメントルートはワークディレクトリであるvar/www/htmlになっているはずです。
この下にpracticeディレクトリを作ってワークディレクトリを移動させることにします。/var/www/html/practice/

2. docker-compose.ymlを編集する

2-1 環境変数の追加
まずはdocker-compose.ymlに次の記述を追加し、ドキュメントルートとしたい`/var/www/html/practice/'を指定してあげます。

docker-compose.yml
ENV APACHE_DOCUMENT_ROOT=/var/www/html/practice/

2-2 書き換え処理の追加
RUNで実行するコマンドに以下の内容を追加します。
これでイメージのビルド時にドキュメントルートを指定のディレクトリに書き換えてもらえるようになります。

docker-compose.yml
sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf

3. イメージをリビルドする

docker-compose.ymlの準備ができたら、あとはイメージをリビルドしてコンテナを作り直します。
ブラウザでアクセスして、ルートページが表示されていれば成功です!

Discussion