Skip to content

Commit

Permalink
Added docker-compose maven plugin to start/stop api-worker cluster lo…
Browse files Browse the repository at this point in the history
…cally
  • Loading branch information
maallen committed Aug 28, 2023
1 parent 95307d9 commit 2a764c6
Show file tree
Hide file tree
Showing 2 changed files with 128 additions and 61 deletions.
159 changes: 98 additions & 61 deletions docker/docker-compose-api-worker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ services:
- --collation-server=utf8mb4_bin
- --max-connections=1000
- --log_error_verbosity=2
worker:
api:
deploy:
mode: replicated
replicas: 2
replicas: 1
endpoint_mode: vip
resources:
limits:
Expand All @@ -39,45 +39,65 @@ services:
depends_on:
db:
condition: service_healthy
api:
condition: service_healthy
build:
dockerfile: docker/Dockerfile-bk8
context: ../
image: mojito:latest
pull_policy: never
links:
- db
ports:
- "8080:8080"
restart: always
environment:
SPRING_APPLICATION_JSON: '{
"spring.flyway.enabled": "true",
"l10n.flyway.clean" : "false",
"spring.jpa.database-platform" : "org.hibernate.dialect.MySQLDialect",
"spring.jpa.hibernate.ddl-auto" : "none",
"spring.datasource.url" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"spring.datasource.username" : "mojito",
"spring.datasource.password" : "ChangeMe",
"spring.datasource.driverClassName" : "com.mysql.cj.jdbc.Driver",
"spring.jpa.defer-datasource-initialization" : "false",
"l10n.org.quartz.scheduler.enabled" : "true",
"l10n.org.quartz.jobStore.useProperties" : "true",
"l10n.org.quartz.scheduler.instanceId" : "AUTO",
"l10n.org.quartz.jobStore.isClustered" : "true",
"l10n.org.quartz.threadPool.threadCount" : "10",
"l10n.org.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
"l10n.org.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
"l10n.org.quartz.jobStore.dataSource" : "myDS",
"l10n.org.quartz.dataSource.myDS.provider" : "hikaricp",
"l10n.org.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
"l10n.org.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"l10n.org.quartz.dataSource.myDS.user" : "mojito",
"l10n.org.quartz.dataSource.myDS.password" : "ChangeMe",
"l10n.org.quartz.dataSource.myDS.maxConnections" : "12",
"l10n.org.quartz.dataSource.myDS.validationQuery" : "select 1"
}'
api:
"spring.flyway.enabled": "true",
"l10n.flyway.clean" : "false",
"spring.jpa.database-platform" : "org.hibernate.dialect.MySQLDialect",
"spring.jpa.hibernate.ddl-auto" : "none",
"spring.datasource.url" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"spring.datasource.username" : "mojito",
"spring.datasource.password" : "ChangeMe",
"spring.datasource.driverClassName" : "com.mysql.cj.jdbc.Driver",
"spring.jpa.defer-datasource-initialization" : "false",
"l10n.org.quartz.scheduler.enabled" : "false",
"l10n.org.multi-quartz.enabled" : "true",
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.useProperties" : "true",
"l10n.org.multi-quartz.schedulers.default.quartz.scheduler.instanceId" : "AUTO",
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.isClustered" : "true",
"l10n.org.multi-quartz.schedulers.default.quartz.threadPool.threadCount" : 10,
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.dataSource" : "myDS",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.provider" : "hikaricp",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.user" : "mojito",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.password" : "ChangeMe",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.maxConnections" : 12,
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.validationQuery" : "select 1",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.useProperties" : "true",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.scheduler.instanceId" : "AUTO",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.isClustered" : "true",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.threadPool.threadCount" : 5,
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.dataSource" : "myDS",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.provider" : "hikaricp",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.user" : "mojito",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.password" : "ChangeMe",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.maxConnections" : 12,
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.validationQuery" : "select 1",
"l10n.assetExtraction.quartz.schedulerName" : "lowPriority",
"logging.level.com.box.l10n.mojito.quartz.QuartzPollableTaskScheduler" : "DEBUG",
"logging.level.com.box.l10n.mojito.service.repository.statistics.RepositoryStatisticsJob" : "DEBUG"
}'
worker:
deploy:
mode: replicated
replicas: 1
replicas: 2
endpoint_mode: vip
resources:
limits:
Expand All @@ -94,38 +114,55 @@ services:
depends_on:
db:
condition: service_healthy
build:
dockerfile: docker/Dockerfile-bk8
context: ../
api:
condition: service_healthy
image: mojito:latest
pull_policy: never
links:
- db
ports:
- "8080:8080"
restart: always
environment:
SPRING_APPLICATION_JSON: '{
"spring.flyway.enabled": "true",
"l10n.flyway.clean" : "false",
"spring.jpa.database-platform" : "org.hibernate.dialect.MySQLDialect",
"spring.jpa.hibernate.ddl-auto" : "none",
"spring.datasource.url" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"spring.datasource.username" : "mojito",
"spring.datasource.password" : "ChangeMe",
"spring.datasource.driverClassName" : "com.mysql.cj.jdbc.Driver",
"spring.jpa.defer-datasource-initialization" : "false",
"l10n.org.quartz.scheduler.enabled" : "false",
"l10n.org.quartz.jobStore.useProperties" : "true",
"l10n.org.quartz.scheduler.instanceId" : "AUTO",
"l10n.org.quartz.jobStore.isClustered" : "true",
"l10n.org.quartz.threadPool.threadCount" : "10",
"l10n.org.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
"l10n.org.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
"l10n.org.quartz.jobStore.dataSource" : "myDS",
"l10n.org.quartz.dataSource.myDS.provider" : "hikaricp",
"l10n.org.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
"l10n.org.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"l10n.org.quartz.dataSource.myDS.user" : "mojito",
"l10n.org.quartz.dataSource.myDS.password" : "ChangeMe",
"l10n.org.quartz.dataSource.myDS.maxConnections" : "12",
"l10n.org.quartz.dataSource.myDS.validationQuery" : "select 1"
}'
"spring.flyway.enabled": "true",
"l10n.flyway.clean" : "false",
"spring.jpa.database-platform" : "org.hibernate.dialect.MySQLDialect",
"spring.jpa.hibernate.ddl-auto" : "none",
"spring.datasource.url" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"spring.datasource.username" : "mojito",
"spring.datasource.password" : "ChangeMe",
"spring.datasource.driverClassName" : "com.mysql.cj.jdbc.Driver",
"spring.jpa.defer-datasource-initialization" : "false",
"l10n.org.quartz.scheduler.enabled" : "true",
"l10n.org.multi-quartz.enabled" : "true",
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.useProperties" : "true",
"l10n.org.multi-quartz.schedulers.default.quartz.scheduler.instanceId" : "AUTO",
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.isClustered" : "true",
"l10n.org.multi-quartz.schedulers.default.quartz.threadPool.threadCount" : 10,
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
"l10n.org.multi-quartz.schedulers.default.quartz.jobStore.dataSource" : "myDS",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.provider" : "hikaricp",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.user" : "mojito",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.password" : "ChangeMe",
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.maxConnections" : 12,
"l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.validationQuery" : "select 1",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.useProperties" : "true",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.scheduler.instanceId" : "AUTO",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.isClustered" : "true",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.threadPool.threadCount" : 5,
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.dataSource" : "myDS",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.provider" : "hikaricp",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.user" : "mojito",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.password" : "ChangeMe",
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.maxConnections" : 12,
"l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.validationQuery" : "select 1",
"l10n.assetExtraction.quartz.schedulerName" : "lowPriority",
"logging.level.com.box.l10n.mojito.quartz.QuartzPollableTaskScheduler" : "DEBUG",
"logging.level.com.box.l10n.mojito.service.repository.statistics.RepositoryStatisticsJob" : "DEBUG"
}'
30 changes: 30 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
<jjwt.version>0.10.5</jjwt.version>
<github.api.version>1.313</github.api.version>
<icu4j.version>64.2</icu4j.version>
<docker.compose.detached.mode>true</docker.compose.detached.mode>
<docker.compose.remove.volumes>true</docker.compose.remove.volumes>
</properties>

<dependencies>
Expand Down Expand Up @@ -150,6 +152,34 @@
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.dkanejs.maven.plugins</groupId>
<artifactId>docker-compose-maven-plugin</artifactId>
<version>4.0.0</version>
<configuration>
<composeFiles>
<composeFile>./docker/docker-compose-api-worker.yml</composeFile>
</composeFiles>
<ignorePullFailures>true</ignorePullFailures>
<detachedMode>${docker.compose.detached.mode}</detachedMode>
<removeVolumes>${docker.compose.remove.volumes}</removeVolumes>
<build>true</build>
</configuration>
<executions>
<execution>
<id>api-worker-cluster-up</id>
<goals>
<goal>up</goal>
</goals>
</execution>
<execution>
<id>api-worker-cluster-down</id>
<goals>
<goal>down</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down

0 comments on commit 2a764c6

Please sign in to comment.