我想在EC2实例(Ubuntu)重新启动时自动触发docker-compose
希望在EC2实例(Ubuntu)重新启动时自动触发docker-compose。
第一步:确保存在docker-compose.yaml文件。
请确认目标项目中是否存在docker-compose.yaml文件。
例如,如下所示。
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
第二步。创建Systemd服务。
创建一个 Systemd 服务,在实例重新启动时自动执行 docker-compose up。以下是创建名为 /etc/systemd/system/docker-compose-app.service 的文件的示例,可能需要使用 Vim 等工具来创建。
[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
请在这里使用pwd等命令确认’WorkingDirectory’,然后指定项目的路径。
请根据实际位置调整’docker-compose’的路径。通常是 /usr/local/bin/docker-compose。
步骤3. 启用 Systemd 服务
$ sudo systemctl enable docker-compose-app
第四步:重新启动实例。
$ sudo reboot
从现在开始,每当EC2实例重新启动时,docker-compose up 将自动执行。