EC2インスタンス(Ubuntu)の再起動時に自動でdocker-composeを発火させたい
Step1. docker-compose.yamlがあることを確認
対象のプロジェクトにdocker-compose.yamlファイルがあることを確認してください。
例えば次のようなものです。
docker-compose.yaml
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
Step2. Systemd サービスの作成
インスタンスが再起動されるときに自動的に docker-compose up
を実行するSystemd サービスを作成します。以下は、/etc/systemd/system/docker-compose-app.service
というファイルを作成する例です。
Vimなどを使って作成することになるでしょう。
docker-compose-app.service
[Unit]
Description=Docker Compose Application
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/path/to/your/project
ExecStart=/usr/local/bin/docker-compose up -d
[Install]
WantedBy=multi-user.target
ここで'WorkingDirectory'はpwdなどで確認して、対象のプロジェクトをパスを指定してください。
'ExecStart'のパスはdocker-composeの実際の場所に合わせてください。通常は /usr/local/bin/docker-composeです。
Step3. Systemd サービスの有効化
$ sudo systemctl enable docker-compose-app
Step4. インスタンスの再起動
$ sudo reboot
これで、EC2インスタンスが再起動されるたびに、docker-compose up が自動的に実行されるようになります。