💭
centos8でコマンド一発でdocker-composeの導入
centos7でdocker-composeを導入するMakefile の続き。
make コマンド一発でcentos8にdocker-composのインストールまで行うmakefileをかいた。
実行コマンドは以下。
$ sudo make install
環境は以下
cloud: aws ec2
os: centos 8
instance type: t2.micro
AMIは以下
centos8ではパッケージマネージャがyumからdnfに移行した。
そこで、centos7, 8両方で動くようにしている。
awsのec2インスタンスを建てる際にAMIによってはmakeコマンドが存在しないケースがある。
以下のコマンドを実行してmakeを入れて欲しい
$ which make || sudo dnf install -y make.x86_64
適当な場所にMakefileを作ってMakefileがあるディレクトリで以下のコマンドを実行する
$ sudo make install
makefileの内容は以下。
DNF=$(shell which dnf)
YUM=$(shell which yum)
SYSTEMCTL=$(shell which systemctl)
CURL=$(shell which curl)
DOCKER_COMPOSE_VERSION=1.27.4
DOCKER_COMPOSE_URL:="https://github.com/docker/compose/releases/download/$(DOCKER_COMPOSE_VERSION)/docker-compose-$(shell uname -s)-$(shell uname -m)"
DOCKER_COMPOSE=/usr/local/bin/docker-compose
init:
which dnf || $(YUM) install -y dnf
$(DNF) install -y vim
.$(DNF):
$(DNF) -y update
$(DNF) -y upgrade
$(DNF) install -y 'dnf-command(config-manager)'
$(DNF) config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
install: init .$(DNF)
$(MAKE) install/docker install/docker-compose
install/docker:
$(DNF) install -y docker-ce docker-ce-cli containerd.io
$(SYSTEMCTL) start docker
$(SYSTEMCTL) enable docker
install/docker-compose:
$(CURL) -L $(DOCKER_COMPOSE_URL) -o $(DOCKER_COMPOSE)
chmod +x $(DOCKER_COMPOSE)
実行後、docker-composeが入ったか確認する
$ which docker-compose
Discussion