Отдельные услуги Jhipster во время разработки - PullRequest
0 голосов
/ 31 октября 2018

Цель

Мы хотели бы создать среду разработки, в которой мы могли бы запускать последние версии нашего реестра, uaa и шлюза на сервере. Затем мы хотели бы разработать и запустить (в или вне докера) микросервис локально. Затем этот микросервис должен быть настроен на подключение и связь с другим сервером.

Тестовая настройка

Теперь я сгенерировал docker-compose через суб-генератор jhipster для нашего шлюза, uaa и реестра. Затем я попытался запустить микросервис, над которым я сейчас работаю, через gradlew, собрать его через gradlew dockerBuild и запустить app.yml. Я также попытался изменить имя хоста в app.yml на localhost, 127.0.0.1 и IP-адрес контейнера регистрации реестров.

Мои результаты

  • Если имя хоста - jhipster-registry: unknownhostexception. Скорее всего потому, что приложения запускаются в разных файлах docker-compose.
  • Если имя хоста - localhost или 127.0.0.1: http://127.0.0.1:8761/config/application/prod/master соединение отклонено. Меняется на Возможно, требуется еще какая-то конфигурация?
  • Если имя хоста является ip контейнера докера реестра: после логотипа jhipster в терминале другие выходные данные не выдаются. Но приложение никогда не останавливается из-за исключения.

Файлы

docker-compose.yml (реестр, uaa и шлюз)

version: '2'
services:
    mygateway-app:
        image: mygateway
        environment:
            - SPRING_PROFILES_ACTIVE=prod,swagger
            - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/eureka
            - SPRING_CLOUD_CONFIG_URI=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/config
            - SPRING_DATASOURCE_URL=jdbc:mysql://mygateway-mysql:3306/mygateway?useUnicode=true&characterEncoding=utf8&useSSL=false
            - JHIPSTER_SLEEP=30
            - JHIPSTER_REGISTRY_PASSWORD=admin
        ports:
            - 8080:8080
        depends_on:
            - "mygateway-mysql"
            - "myuaa-app"
    mygateway-mysql:
        image: mysql:5.7.20
        environment:
            - MYSQL_USER=root
            - MYSQL_ALLOW_EMPTY_PASSWORD=yes
            - MYSQL_DATABASE=mygateway
        command:             mysqld --lower_case_table_names=1 --skip-ssl
            --character_set_server=utf8mb4 --explicit_defaults_for_timestamp

    myuaa-app:
        image: myuaa
        environment:
            - SPRING_PROFILES_ACTIVE=prod,swagger
            - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/eureka
            - SPRING_CLOUD_CONFIG_URI=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/config
            - SPRING_DATASOURCE_URL=jdbc:mysql://myuaa-mysql:3306/myuaa?useUnicode=true&characterEncoding=utf8&useSSL=false
            - JHIPSTER_SLEEP=30
            - JHIPSTER_REGISTRY_PASSWORD=admin
        depends_on:
            - "myuaa-mysql"
            - "jhipster-registry"
    myuaa-mysql:
        image: mysql:5.7.20
        environment:
            - MYSQL_USER=root
            - MYSQL_ALLOW_EMPTY_PASSWORD=yes
            - MYSQL_DATABASE=myuaa
        command:             mysqld --lower_case_table_names=1 --skip-ssl
            --character_set_server=utf8mb4 --explicit_defaults_for_timestamp

    jhipster-registry:
        extends:
            file: jhipster-registry.yml
            service: jhipster-registry

app.yml (микросервис)

version: '2'
services:
    myservice-app:
        image: myservice
        environment:
            # - _JAVA_OPTIONS=-Xmx512m -Xms256m
            - SPRING_PROFILES_ACTIVE=prod,swagger
            - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:$${jhipster.registry.password}@localhost:8761/eureka
            - SPRING_CLOUD_CONFIG_URI=http://admin:$${jhipster.registry.password}@localhost:8761/config
            - SPRING_DATASOURCE_URL=jdbc:mysql://myservice-mysql:3306/myservice?useUnicode=true&characterEncoding=utf8&useSSL=false
            - JHIPSTER_SLEEP=10 # gives time for the JHipster Registry to boot before the application
            - JHIPSTER_REGISTRY_PASSWORD=admin
    myservice-mysql:
        extends:
            file: mysql.yml
            service: myservice-mysql
    # jhipster-registry:
    #     extends:
    #         file: jhipster-registry.yml
    #         service: jhipster-registry
    #     environment:
    #         - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE=native
    #         - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_LOCATIONS=file:./central-config/docker-config/
...