我想在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 将自动执行。