У меня есть следующее docker-compose :
version: '2'
services:
cryptohds:
image: cryptohds:cryptohds-2.0.0-SNAPSHOT
environment:
- APP_SLEEP=10 # gives time for the database to boot before the application
- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_URL=jdbc:mysql://cryptohds-mysql:3306/cryptohds?useUnicode=true&characterEncoding=utf8&useSSL=false
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=cryptohds
cryptohds-mysql:
extends:
file: mysql.yml
service: cryptohds-mysql
Что касается mysql.yml :
version: '2'
services:
cryptohds-mysql:
image: mysql:5.7.20
environment:
- MYSQL_USER=root
- MYSQL_ROOT_PASSWORD=cryptohds
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=cryptohds
ports:
- 3306
command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8 --explicit_defaults_for_timestamp
При масштабировании cryptohds они хорошо масштабируются, но все они используют один и тот же cryptohds-mysql .Я хочу масштабировать cryptohds , и каждый экземпляр имеет свой собственный cryptohds-mysql .
Как я могу этого достичь?Должны ли они быть двумя службами, которые разделяют сеть между ними, а затем масштабируют их индивидуально?Но в таком случае, как я могу использовать SPRING_DATASOURCE_URL?
UPDATE
Я на самом деле создал docker-compose, который делает то, что мне нужно, но он не динамический.Он специально создает 2 экземпляра каждого, и я хочу случайное число.Есть ли другой способ сделать это динамически?Или только по сценарию?
version: '2'
services:
cryptohds:
image: cryptohds:cryptohds-2.0.0-SNAPSHOT
environment:
- APP_SLEEP=10 # gives time for the database to boot before the application
- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_URL=jdbc:mysql://cryptohds-mysql:3306/cryptohds?useUnicode=true&characterEncoding=utf8&useSSL=false
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=cryptohds
cryptohds-mysql:
extends:
file: mysql.yml
service: cryptohds-mysql
cryptohds_1:
image: cryptohds:cryptohds-2.0.0-SNAPSHOT
environment:
- APP_SLEEP=10 # gives time for the database to boot before the application
- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_URL=jdbc:mysql://cryptohds-mysql_1:3306/cryptohds?useUnicode=true&characterEncoding=utf8&useSSL=false
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=cryptohds
cryptohds-mysql_1:
extends:
file: mysql.yml
service: cryptohds-mysql