在 docker 运行 时升级 Keycloak
Keycloak upgrade while running on docker
我打算 运行 我的 keycloak 实例使用 docker (http://blog.keycloak.org/2015/04/running-keycloak-cluster-with-docker.html) 和尽可能简单的堆栈
- Docker keycloak 本身的图像,最新标签
- Mysql keycloak 数据库的图像,附加了 docker 用于持久化的卷
我现在唯一想不通的问题是,当他们发布新版本并且数据库模式需要迁移时,如何将 keycloak 升级到最新版本。他们提供了如何进行迁移的步骤 (https://github.com/keycloak/keycloak-documentation/blob/master/server_admin/topics/MigrationFromOlderVersions.adoc),但我无法弄清楚当您的 keycloak 被容器化时应该采取哪些步骤。
任何建议将不胜感激。
数据库迁移
Keycloak comes with Liquibase 用于管理数据库版本。升级你的 keycloak 需要做的事情应该是:
备份您的数据库内容和非数据库内容(自定义提供程序、主题、
等等)。
运行 docker 再次使用更新的 keycloak 标签。然后,Liquibase 将
检测旧版本的数据库并执行必要的步骤
为了让它更新。请记住,您必须提供 keycloak
一些用户授予数据库更改权限。
配置文件迁移
此任务没有自动化。如果您没有更改配置文件,只需 运行 新图像。如果你编辑过它们,你需要为新版本和运行图像做准备。
因为我已经将 keycloak 配置为 运行 在反向代理后面并且需要自定义配置文件,所以我编写了一个 Dockerfile 来拥有我自己的 keycloak docker 图像,以及我自己的配置包装:
FROM jboss/keycloak-mysql:2.4.0.Final
ADD standalone.xml /opt/jboss/keycloak/standalone/configuration
ADD standalone-ha.xml /opt/jboss/keycloak/standalone/configuration
CMD ["-b", "0.0.0.0"]
提供商、主题...迁移
如果您实现了自定义提供程序或其他类型的东西,您将需要检查它们与新版本的兼容性。否则,您可能需要重写它们。
通常,使用 latest 标签对于生产环境和任何图像来说通常不是一个好主意。有任何 developer/sysadmin 运行ning docker pull
命令并自动执行更新过程的风险,我想这不是你想要的。最好坚持固定版本号并自己执行更新,先完成备份。
另请参阅:
我打算 运行 我的 keycloak 实例使用 docker (http://blog.keycloak.org/2015/04/running-keycloak-cluster-with-docker.html) 和尽可能简单的堆栈
- Docker keycloak 本身的图像,最新标签
- Mysql keycloak 数据库的图像,附加了 docker 用于持久化的卷
我现在唯一想不通的问题是,当他们发布新版本并且数据库模式需要迁移时,如何将 keycloak 升级到最新版本。他们提供了如何进行迁移的步骤 (https://github.com/keycloak/keycloak-documentation/blob/master/server_admin/topics/MigrationFromOlderVersions.adoc),但我无法弄清楚当您的 keycloak 被容器化时应该采取哪些步骤。
任何建议将不胜感激。
数据库迁移
Keycloak comes with Liquibase 用于管理数据库版本。升级你的 keycloak 需要做的事情应该是:
备份您的数据库内容和非数据库内容(自定义提供程序、主题、 等等)。
运行 docker 再次使用更新的 keycloak 标签。然后,Liquibase 将 检测旧版本的数据库并执行必要的步骤 为了让它更新。请记住,您必须提供 keycloak 一些用户授予数据库更改权限。
配置文件迁移
此任务没有自动化。如果您没有更改配置文件,只需 运行 新图像。如果你编辑过它们,你需要为新版本和运行图像做准备。
因为我已经将 keycloak 配置为 运行 在反向代理后面并且需要自定义配置文件,所以我编写了一个 Dockerfile 来拥有我自己的 keycloak docker 图像,以及我自己的配置包装:
FROM jboss/keycloak-mysql:2.4.0.Final
ADD standalone.xml /opt/jboss/keycloak/standalone/configuration
ADD standalone-ha.xml /opt/jboss/keycloak/standalone/configuration
CMD ["-b", "0.0.0.0"]
提供商、主题...迁移
如果您实现了自定义提供程序或其他类型的东西,您将需要检查它们与新版本的兼容性。否则,您可能需要重写它们。
通常,使用 latest 标签对于生产环境和任何图像来说通常不是一个好主意。有任何 developer/sysadmin 运行ning docker pull
命令并自动执行更新过程的风险,我想这不是你想要的。最好坚持固定版本号并自己执行更新,先完成备份。
另请参阅: