# Upgrading Keycloak from 11 to 20 (Docker)

**URL:** <https://forum.keycloak.org/t/upgrading-keycloak-from-11-to-20-docker/18865>\
**Category:** Getting advice\
**Tags:** upgrading\
**Created:** [December 7, 2022, 9:46pm UTC](https://forum.keycloak.org/t/upgrading-keycloak-from-11-to-20-docker/18865 "2022-12-07T21:46:33Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![fouringiz](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/fouringiz/32/6402_2.png) [@fouringiz](https://forum.keycloak.org/u/fouringiz)\
**Post date:** [December 7, 2022, 9:46pm UTC](https://forum.keycloak.org/t/upgrading-keycloak-from-11-to-20-docker/18865/1 "2022-12-07T21:46:33Z")

</div>

Hello community  
planning to upgrade keycloak from 11 to 20 (docker)  
considering WildFly to Quarkus migration, is it something to be done smoothly or there are caveats?  
also should it be upgraded 11\>12\>13\>…\>20 or can be done directly?

any advice or best-practises-link is much appreciated  
thanks

---

<div class="post-metadata">

**Author:** ![sherif](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/sherif/32/5578_2.png) [@sherif](https://forum.keycloak.org/u/sherif)\
**Post date:** [December 7, 2022, 11:45pm UTC](https://forum.keycloak.org/t/upgrading-keycloak-from-11-to-20-docker/18865/2 "2022-12-07T23:45:15Z")

</div>

Clustering is different, I didn’t use docker, but I did upgrade 14,15,16…etc… I know some people did jump from 3.4.x to 18.x but I never done it myself! the only trick I recall was with clustering when moved from WildFly to Quarkus and couple of things related to SPI for JKS certs

---

<div class="post-metadata">

**Author:** ![mbonn](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/mbonn/32/5755_2.png) [@mbonn](https://forum.keycloak.org/u/mbonn)\
**Post date:** [December 8, 2022, 8:08am UTC](https://forum.keycloak.org/t/upgrading-keycloak-from-11-to-20-docker/18865/3 "2022-12-08T08:08:02Z")

</div>

> [@sherif](#):
>
> the only trick I recall was with clustering when moved from WildFly to Quarkus

What is the Wildfly/Quarkus difference in clustering? Aren’t they using both the same infinispan mechanisms/configs?

---

<div class="post-metadata">

**Author:** ![sherif](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/sherif/32/5578_2.png) [@sherif](https://forum.keycloak.org/u/sherif)\
**Post date:** [December 8, 2022, 10:26am UTC](https://forum.keycloak.org/t/upgrading-keycloak-from-11-to-20-docker/18865/4 "2022-12-08T10:26:57Z")

</div>

as far as i recall, in wildfly, the configurations were in the main config file like standalone.xml, “not sure if this was infinispan” then in Quarkus, you need separate XML that is based on inifinspan , but when we did the move from wildfly to Quarkus, we had to re configure our clustering

---

<div class="post-metadata">

**Author:** ![fouringiz](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/fouringiz/32/6402_2.png) [@fouringiz](https://forum.keycloak.org/u/fouringiz)\
**Post date:** [December 9, 2022, 12:20pm UTC](https://forum.keycloak.org/t/upgrading-keycloak-from-11-to-20-docker/18865/5 "2022-12-09T12:20:56Z")

</div>

it turned out that I have to BUILD the image before I can use it  
I’d upgraded it to 16.1.0 directly and it worked

the only thing I still dont get is that I need to use a keytool while building

```auto
RUN keytool -genkeypair -storepass password -storetype PKCS12 -keyalg RSA -keysize 2048 -dname "CN=server" -alias server -ext "SAN:c=DNS:localhost,IP:127.0.0.1" -keystore conf/server.keystore
RUN /opt/keycloak/bin/kc.sh build

```

need to investigate. I’ll update this post if anyone need it in the future
