Docker

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を設定しておくと更に便利