Dockerを利用してCGI/SSI が動作するWEBサーバーを構築
Dockerの勉強を兼ねてCGI動作確認用のローカルWEBサーバーを構築してみた。
Docker Web サーバーの構築例は、nginx
を使ったものが多かったが、自分が利用しているレンタルサーバー(xserver)の環境にあわせる必要があったので Apache
で構成することにした。多くのTipsのうち偶然見つけた下記の記事がわかりやすく比較的楽に導入に成功した。
dockerインストール
自分の環境(Debian11)へのDockerインストールの手順は、下記makefile
の通り。
ついでにdocker-composeもインストールして使えるようにした。
## makefile
docker: ## Install docker
sudo apt-get install ca-certificates lsb-release
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
docker-compose: ## Install docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
dockerコマンドをsudoなしで実行できるようにする
dockerコマンドを入力するたびにsudoをつけるのは面倒なので下記の設定を行う。
# dockerグループを作る
$ sudo groupadd docker
# dockerを操作するユーザ(ここでは今のユーザ)をdockerグループに所属させる
$ sudo gpasswd -a $USER docker
# dockerデーモンを再起動する
$ sudo restart docker
# 再ログインすると反映される
$ exit
# Dockerをブート時に自動起動させる
$ sudo systemctl enable --now docker
頻繁の使うことになるコマンドは、zshrc
(またはbashrc
)に、aliasを設定しておくと更に便利