kamal rollback

你可以使用 kamal rollback 回滚部署。

如果你发现某个部署很糟糕,你可以快速回滚到以前的镜像。你可以通过运行 kamal app containers -q 来查看有哪些旧容器可供回滚。它会给你一个类似 kamal app details 的展示,但还包括所有旧容器。

App Host: 192.168.0.1
CONTAINER ID   IMAGE                                                                         COMMAND                    CREATED          STATUS                      PORTS      NAMES
1d3c91ed1f51   registry.digitalocean.com/user/app:6ef8a6a84c525b123c5245345a8483f86d05a123   "/rails/bin/docker-e..."   19 minutes ago   Up 19 minutes               3000/tcp   chat-6ef8a6a84c525b123c5245345a8483f86d05a123
539f26b28369   registry.digitalocean.com/user/app:e5d9d7c2b898289dfbc5f7f1334140d984eedae4   "/rails/bin/docker-e..."   31 minutes ago   Exited (1) 27 minutes ago              chat-e5d9d7c2b898289dfbc5f7f1334140d984eedae4

App Host: 192.168.0.2
CONTAINER ID   IMAGE                                                                         COMMAND                    CREATED          STATUS                      PORTS      NAMES
badb1aa51db4   registry.digitalocean.com/user/app:6ef8a6a84c525b123c5245345a8483f86d05a123   "/rails/bin/docker-e..."   19 minutes ago   Up 19 minutes               3000/tcp   chat-6ef8a6a84c525b123c5245345a8483f86d05a123
6f170d1172ae   registry.digitalocean.com/user/app:e5d9d7c2b898289dfbc5f7f1334140d984eedae4   "/rails/bin/docker-e..."   31 minutes ago   Exited (1) 27 minutes ago              chat-e5d9d7c2b898289dfbc5f7f1334140d984eedae4

从上面的例子中,我们可以看到 e5d9d7c2b898289dfbc5f7f1334140d984eedae4 是最新版本,因此它可作为回滚目标。我们可以通过运行 kamal rollback e5d9d7c2b898289dfbc5f7f1334140d984eedae4 来执行此回滚。

这将停止 6ef8a6a84c525b123c5245345a8483f86d05a123,然后启动一个新容器,运行与 e5d9d7c2b898289dfbc5f7f1334140d984eedae4 相同镜像。无需从注册表中下载任何内容。

注意:默认情况下,当你运行 kamal deploy 时,旧容器会在 3 天后被修剪。