mirror of
https://github.com/booklore-app/booklore.git
synced 2026-02-18 00:17:53 +01:00
* refactor: simplify RestTemplate and ObjectMapper configurations, add no-args constructors to progress classes Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * chore: update Gradle and Java versions in Docker configuration and build files Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * test: enhance header assertions in tests and add spring-boot-test-autoconfigure dependency Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor(tests): migrate to SpringBootTest and update entity management in test cases Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * test: update test property configurations for H2 database in Healthcheck and BookOpds repository tests Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * test: clean up HealthcheckControllerTest by removing unnecessary whitespace and comments Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * test: remove unnecessary whitespace in HealthcheckControllerTest Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * chore: downgrade Flyway version from 12.0.0 to 11.14.1 in build.gradle Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * chore: downgrade Flyway version from 12.0.0 to 11.14.1 in build.gradle Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add @DependsOn annotation for Flyway in MultipartConfig Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add @DependsOn annotation for Flyway in LibraryService Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add test configuration for Flyway in HealthcheckControllerTest chore: remove unused path variable in deleteLibrary method of LibraryService Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: configure Flyway migration and update test configuration Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: enable remote debugging in bootRun configuration Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: update Flyway version and enhance ObjectMapper configuration Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: remove @DependsOn annotation for Flyway in MultipartConfig and LibraryService Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add NoArgsConstructor and AllArgsConstructor annotations to DTO classes Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add NoArgsConstructor and AllArgsConstructor annotations to FileProcessResult, MetadataUpdateContext, and MetadataUpdateWrapper classes Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add DependsOnDatabaseInitialization annotation to MultipartConfig, AppSettingService, LibraryService, and JwtSecretService classes Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add DependsOnDatabaseInitialization annotation to MultipartConfig and CronService classes Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: implement lazy initialization and thread safety for JWT secret retrieval Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add Flyway dependency and update LibraryService initialization to use ApplicationReadyEvent Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor: remove outdated comments from JwtSecretService class Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor: migrate from com.fasterxml.jackson to tools.jackson for JSON processing Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor: remove unused ObjectMapper bean and related imports from JacksonConfig Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: configure async support with VirtualThreadTaskExecutor in WebMvcConfig Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: enhance application performance with virtual threads and HTTP/2 support Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add JsonSetter annotation to skip null values for triggeredByCron field Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: add triggeredByCron field to TaskCreateRequest and initialize in task management Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * feat: enable Spring Data web support with DTO serialization in WebMvcConfig Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor(UserDefaultsService): simplify class structure and remove unused methods Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor(BookOpdsRepositoryDataJpaTest): simplify test setup and use TestEntityManager Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor(BookOpdsRepositoryDataJpaTest): update test configuration and simplify entity persistence Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor: update Jackson dependencies and migrate to Jackson 3 Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor(build.gradle): update jackson-annotations dependency to use Jackson 3 BOM Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor(BookOpdsRepositoryDataJpaTest): remove unused ObjectMapper bean definition Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> * refactor(LibraryService): simplify library deletion logic Signed-off-by: Balázs Szücs <bszucs1209@gmail.com> --------- Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
69 lines
2.1 KiB
YAML
69 lines
2.1 KiB
YAML
services:
|
|
backend:
|
|
image: gradle:9.3.1-jdk25-alpine
|
|
command: sh -c "cd /booklore-api && ./gradlew bootRun"
|
|
ports:
|
|
- "${BACKEND_PORT:-8080}:8080"
|
|
- "${REMOTE_DEBUG_PORT:-5005}:5005"
|
|
environment:
|
|
- DATABASE_URL=jdbc:mariadb://backend_db:3306/booklore
|
|
- DATABASE_USERNAME=booklore
|
|
- DATABASE_PASSWORD=booklore
|
|
- REMOTE_DEBUG_ENABLED=true
|
|
stdin_open: true
|
|
tty: true
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- backend_db
|
|
volumes:
|
|
- './booklore-api:/booklore-api'
|
|
- /booklore-api/build
|
|
- /booklore-api/.gradle
|
|
- ./shared/data:/app/data
|
|
- ./shared/books:/books
|
|
- ./shared/bookdrop:/bookdrop
|
|
|
|
backend_db:
|
|
image: mariadb:11.4
|
|
container_name: backend_db
|
|
volumes:
|
|
- backend_db:/var/lib/mysql
|
|
restart: unless-stopped
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=booklore
|
|
- MYSQL_DATABASE=booklore
|
|
- MYSQL_USER=booklore
|
|
- MYSQL_PASSWORD=booklore
|
|
ports:
|
|
- "${DB_PORT:-3366}:3306"
|
|
healthcheck:
|
|
test: [ "CMD", "mariadb-admin", "ping", "-h", "localhost", "-uroot", "-pbooklore" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
ui:
|
|
image: node:22-alpine
|
|
command: sh -c "cd /angular-app && npm install -g @angular/cli --force && npm install --force && ng serve --host 0.0.0.0"
|
|
environment:
|
|
- NODE_ENV=development
|
|
stdin_open: true
|
|
tty: true
|
|
restart: unless-stopped
|
|
volumes:
|
|
- './booklore-ui:/angular-app'
|
|
|
|
# you can have node_modules in a volume. however, if you enable this, expect trouble in some IDEs, as the deps are not available anymore
|
|
# - node_modules:/angular-app/node_modules
|
|
|
|
# we ignore package-lock otherwise will throw
|
|
# An unhandled exception occurred: Cannot find module @rollup/rollup-linux-x64-musl. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828).
|
|
# Please try `npm i` again after removing both package-lock.json and node_modules directory.
|
|
- '/dev/null:/angular-app/package-lock.json'
|
|
ports:
|
|
- "${FRONTEND_PORT:-4200}:4200"
|
|
|
|
volumes:
|
|
node_modules:
|
|
backend_db:
|