我目前正在致力于自动化 Java 应用程序的部署过程。使用 Maven (mvn deploy) 构建应用程序并将其部署到 Nexus 存储库中。此外,我还设置了一个 Dockerfile,用于从 Nexus 存储库获取最新或指定的 WAR 文件版本,并在 WildFly 上运行它。
我希望通过从 application.properties 外部化 Keycloak 身份验证变量来改进配置管理。我想将这些变量直接包含在我的 Dockerfile 中,这样我就可以更改它们,而无需每次都修改 application.properties 文件。
如何在我的 Dockerfile 中实现此外部化,而不在此阶段使用 docker-compose 文件?
您可以在 Dockerfile 中使用 ENV 关键字将它们定义为环境变量。 或者在 docker run 命令中使用 -e、--env 参数,或者如果您将它们放在文件中,则只需使用 --env-file。
您可以查看一些文档:
https://docs.docker.com/reference/cli/docker/container/run/#env