🤪
Dockerのコンテナ内でのドキュメントルートを変更する手順
コンテナのベースイメージには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