【问题标题】:JHipster v7.1.0 - How to create docker-compose conf with dev profileJHipster v7.1.0 - 如何使用开发配置文件创建 docker-compose conf
【发布时间】:2021-07-30 05:44:33
【问题描述】:
我找不到任何有关如何为具有 dev-profile 的多个应用程序创建自定义 docker-compose 配置的文档,如 https://www.jhipster.tech/docker-compose/#docker-compose-subgen#Generating 为多个应用程序的自定义 Docker-Compose 配置
我的微服务架构由一个网关和一个微服务组成,我使用 jdl 文件创建它们。当 docker-compose 子生成器运行时,它会创建一个配置(docker-compose/docker-compose.yml)
SPRING_PROFILES_ACTIVE=prod,api-docs 和 prod 的数据库配置。
我尝试运行“./mvnw -ntp -Pdev verify jib:dockerBuild”,但在 mygateway/src/main/docker/app.yml 和 docker-compose/ 中没有任何变化docker-compose.yml
【问题讨论】:
标签:
docker-compose
jhipster
【解决方案1】:
这是我的网关文件夹的样子(仅重要文件):
/gateway/src/main/docker/
| central-server-config/localhost-config
| application.yml
| app.yml
这就是我使用 dev-profile 创建工作 docker-compose 的方式:
- 重建项目;
mvn clean install
- 使用开发配置文件重建 docker 映像;
./mvnw -ntp -Pdev verify jib:dockerBuild
- 复制 src/main/docker/app.yml 到 src/main/docker/app-dev.yml
- 在文件 app-dev.yml 中更改以下内容
- SPRING_PROFILES_ACTIVE=prod,api-docs
- SPRING_R2DBC_URL=r2dbc:postgresql://-postgresql:5432/
- SPRING_LIQUIBASE_URL=jdbc:postgresql://-postgresql:5432/
到
- SPRING_PROFILES_ACTIVE=dev,webapp,api-docs
- SPRING_R2DBC_URL=r2dbc:h2:file://tmp/h2db/db/;DB_CLOSE_DELAY=-1
- SPRING_LIQUIBASE_URL=jdbc:h2:file://tmp/h2db/db/;DB_CLOSE_DELAY=-1
我还删除了 postgress-container 的孔部分(不需要)
仅供参考:默认的数据库位置是相对的。在容器中,init 上的相对路径是根文件夹,appuser 可能不会在其中创建目录。由于我使用 '/tmp/h2db/db'
- 在 application.yml 我更改以下内容
来自
eureka:
client:
service-url:
defaultZone: http://admin:${jhipster.registry.password}@localhost:8761/eureka/
到
eureka:
client:
service-url:
defaultZone: http://admin:${jhipster.registry.password}@jhipster-registry:8761/eureka/
仅供参考:配置通过覆盖部分告诉 configserver 客户端错误的 eureka url。删除它或只使用与 EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE 中的相同,我做了最后一个。
然后我可以使用 dev-profile 启动网关而不会出现任何错误。
例如
docker-compose -f src/main/docker/app-dev.yml up
我尚未对其进行测试,但它应该可以使用与上述相同/相似的更改创建具有 dev-profile 的 docker-compose/docker-compose.yml。