Образ микросервиса рассылки нотификаций
- openjdk:8-jre-alpine - официальный образ openjdk 8 jre на базе alpine linux
notifications-app: logging: options: max-size: "10m" max-file: "5" image: nexus.citeck.ru/ecos-notifications:<NOTIFICATIONS_APP_IMAGE container_name: notifications-app hostname: notifications-app restart: unless-stopped stop_grace_period: 1m depends_on: - notifications-postgresql environment: - JHIPSTER_REGISTRY_PASSWORD=alfr3sc0 - _JAVA_OPTIONS=-Xmx256m -Xms256m - 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:postgresql://notifications-postgresql:5432/notifications - JHIPSTER_SLEEP=140 # gives time for the JHipster Registry to boot before the application - ECOS-NOTIFICATIONS_EVENT_HOST=<ECOS-NOTIFICATIONS_EVENT_HOST - ECOS-NOTIFICATIONS_EVENT_PORT=<ECOS-NOTIFICATIONS_EVENT_PORT - ECOS-NOTIFICATIONS_EVENT_USERNAME=<ECOS-NOTIFICATIONS_EVENT_USERNAME - ECOS-NOTIFICATIONS_EVENT_PASSWORD=<ECOS-NOTIFICATIONS_EVENT_PASSWORD - ECOS-NOTIFICATIONS_ALFRESCO_URL=<ECOS-NOTIFICATIONS_ALFRESCO_URL - ECOS-NOTIFICATIONS_ALFRESCO_AUTHENTICATION_USERNAME=<ECOS-NOTIFICATIONS_ALFRESCO_AUTHENTICATION_USERNAME - ECOS-NOTIFICATIONS_ALFRESCO_AUTHENTICATION_PASSWORD=<ECOS-NOTIFICATIONS_ALFRESCO_AUTHENTICATION_PASSWORD ports: - 8013:8013 volumes: - /opt/alfresco/logs/notifications:/tmp - /opt/micro/credentials:/credentials networks: - app_network # NOTIFICATIONS PSQL notifications-postgresql: image: postgres:10.4 container_name: notifications-postgresql hostname: notifications-postgresql restart: unless-stopped stop_grace_period: 1m environment: - POSTGRES_USER=notifications volumes: - /opt/micro/postgresql/notifications:/var/lib/postgresql/data networks: - app_network
- _JAVA_OPTIONS - параметры для jvm
- SPRING_PROFILES_ACTIVE - используемые при развертывании профили
- EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE - url используемого по умолчанию eureka load balancer, содержит credentials
- SPRING_CLOUD_CONFIG_URI - url используемого cloud config server, содержит credentials
- JHIPSTER_REGISTRY_PASSWORD - пароль пользователя для аутентификации в eureka load balancer
- SPRING_DATASOURCE_URL - url используемого postgresql datasource
- JHIPSTER_SLEEP **- **таймаут перед развертыванием микросервиса
- ECOS-NOTIFICATIONS_EVENT_HOST - fqdn/ip диспетчера очередей rabbitmq
- ECOS-NOTIFICATIONS_EVENT_PORT - amqp порт диспетчера очередей rabbitmq
- ECOS-NOTIFICATIONS_EVENT_USERNAME - пользователь диспетчера очередей rabbitmq
- ECOS-NOTIFICATIONS_EVENT_PASSWORD - пароль диспетчера очередей rabbitmq
- ECOS-NOTIFICATIONS_ALFRESCO_URL - fqdn развернутого приложения ecos
- ECOS-NOTIFICATIONS_ALFRESCO_AUTHENTICATION_USERNAME - пользователь в ecos для интеграции с микросервисом нотификации
- ECOS-NOTIFICATIONS_ALFRESCO_AUTHENTICATION_PASSWORD - пароль пользователя в ecos для интеграции с микросервисом нотификации
- Отсутствие readness/liveness проверок датасорсов при развертывании и активном состоянии микросервиса
- Использование empty password в доступах к датасорсам
- Cloud config и eureka load balancer используют один и тот же пароль
- Монтирование firebase credentials как волюма
- Часть app properties (ECOS-NOTIFICATIONS*) нужно вынести в spring cloud config
notifications-app | ---------------------------------------------------------- notifications-app | Application 'notifications' is running! Access URLs: notifications-app | Local: http://localhost:8013/ notifications-app | External: http://172.26.0.22:8013/ notifications-app | Profile(s): [prod, swagger] notifications-app | ---------------------------------------------------------- notifications-app | 2020-05-14 05:59:30.204 INFO 1 --- [ main] r.c.ecos.notifications.NotificationsApp : notifications-app | ---------------------------------------------------------- notifications-app | Config Server: Connected to the JHipster Registry running in Docker notifications-app | ----------------------------------------------------------