-
Notifications
You must be signed in to change notification settings - Fork 517
Simplify docker deployment #3088
Description
The example docker-compose deployment in the distro folder makes too many assumptions which complicate deployment.
I've tried to setting up the system to evaluate it for our company (targeting ~200 developers) but the provided resources (images & templates) make a simple deployment problematic.
I've seen several tasks related to deployment:
- Instructions don't work #2504
- docker-compose starts with errors #2346
- With docker compose login instructions not able use apicurio studio #2262
- [docker-compose] distro without Keycloack ? #2100
- Error: Registry configuration "draft mutability" #2968
- Integration of Apicurio Studio 1.0.0-beta1 with Keycloak for Authentication/Authorization Not Working #3062
Which shows that the current instructions are either not working, or not flexible enough for certain deployments.
For my particular case I am running into issue because the service runs on "host" network on port "8080" which is both not allowed in our environment, and the given port is not free.
Changing both is made very cumbersome due to the reliance on the setup.sh script.
The apicurio system (including all components) looks all very standard and clean. It shouldn't rely on too much automation. Removing the automation will make deployment easier because we could transfer our docker experience to it. With the setup.sh script we instead need to learn how to use that, and the required files/variables/arguments. This is unnecessary "mental load". The script was likely created to make deployment easier but it achieves the opposite.
In addition, I could not find a way to change the API URL to "localhost:8080" inside the studio-ui container. I tried to mount my custom nginx config into the container, but it is overwritten on startup. This is fine, but it's not clear where it takes the value from for that URL. Having it exposed with an environment-variable would align with common docker-practices and make deployment easier.