From b5bfb677d9b29219ec092b3ffe3acb3fe863b294 Mon Sep 17 00:00:00 2001 From: liosha84 <138026690+liosha84@users.noreply.github.com> Date: Wed, 6 Aug 2025 20:26:24 +0300 Subject: [PATCH] Refactor Docker setup and update file storage paths for improved containerization --- src/{Docker => DevOps}/Dockerfile | 1 + src/{Docker => DevOps}/db_password.txt | 0 src/{Docker => DevOps}/docker-compose.yml | 7 +++++-- src/DevOps/run.bat | 5 +++++ src/DevOps/run.sh | 9 +++++++++ src/{Docker => DevOps}/webapp.env | 0 .../jambotron/JambotronApplication.java | 1 + .../controllers/TutorialController.java | 18 ++++++++++-------- .../fileUpload/FilesStorageServiceImpl.java | 9 +++++++-- 9 files changed, 38 insertions(+), 12 deletions(-) rename src/{Docker => DevOps}/Dockerfile (93%) rename src/{Docker => DevOps}/db_password.txt (100%) rename src/{Docker => DevOps}/docker-compose.yml (93%) create mode 100644 src/DevOps/run.bat create mode 100644 src/DevOps/run.sh rename src/{Docker => DevOps}/webapp.env (100%) diff --git a/src/Docker/Dockerfile b/src/DevOps/Dockerfile similarity index 93% rename from src/Docker/Dockerfile rename to src/DevOps/Dockerfile index 6712f0f..32cb7a8 100644 --- a/src/Docker/Dockerfile +++ b/src/DevOps/Dockerfile @@ -7,6 +7,7 @@ FROM openjdk:24 WORKDIR /jambotron/ +VOLUME /jambotron_data/uploads COPY './build/libs/jambotron-0.0.1-SNAPSHOT.jar' '/app/jambotron.jar' #COPY --from=BUILD_IMAGE /jambotron/build/libs/jambotron-0.0.1-SNAPSHOT.jar . #EXPOSE 8080 diff --git a/src/Docker/db_password.txt b/src/DevOps/db_password.txt similarity index 100% rename from src/Docker/db_password.txt rename to src/DevOps/db_password.txt diff --git a/src/Docker/docker-compose.yml b/src/DevOps/docker-compose.yml similarity index 93% rename from src/Docker/docker-compose.yml rename to src/DevOps/docker-compose.yml index 500330f..687b871 100644 --- a/src/Docker/docker-compose.yml +++ b/src/DevOps/docker-compose.yml @@ -4,7 +4,7 @@ services: container_name: 'jambotron-container' build: context: ../../ - dockerfile: ./src/Docker/Dockerfile + dockerfile: /Dockerfile ports: # - "8081:80" - "8443:443" @@ -12,6 +12,7 @@ services: - postgres_jambotron volumes: - certs:/certs + - jambotron_data:/jambotron_data # env_file: "webapp.env" environment: SSL_ENABLED: "true" @@ -63,4 +64,6 @@ services: # file: db_password.txt volumes: certs: - external: true \ No newline at end of file + external: true + jambotron_data: +# external: true \ No newline at end of file diff --git a/src/DevOps/run.bat b/src/DevOps/run.bat new file mode 100644 index 0000000..512684e --- /dev/null +++ b/src/DevOps/run.bat @@ -0,0 +1,5 @@ +// investigate docker-compose.yml files for details on how to run the application +@echo off +//docker compose -f docker-compose.yml down +//docker compose -f docker-compose.yml build +//docker compose -f docker-compose.yml up -d \ No newline at end of file diff --git a/src/DevOps/run.sh b/src/DevOps/run.sh new file mode 100644 index 0000000..578245a --- /dev/null +++ b/src/DevOps/run.sh @@ -0,0 +1,9 @@ +#additional investigation needed to run this script +##!/bin/bash +# +## stop any previously running containers +#docker compose --env-file .env -f DevOps/docker-compose.yml down +## build the images +#docker compose --env-file .env -f DevOps/docker-compose.yml build +## start the containers +#docker compose --env-file .env -f DevOps/docker-compose.yml up -d \ No newline at end of file diff --git a/src/Docker/webapp.env b/src/DevOps/webapp.env similarity index 100% rename from src/Docker/webapp.env rename to src/DevOps/webapp.env diff --git a/src/main/java/com/jambotronGroup/jambotron/JambotronApplication.java b/src/main/java/com/jambotronGroup/jambotron/JambotronApplication.java index 369760e..3c64e86 100644 --- a/src/main/java/com/jambotronGroup/jambotron/JambotronApplication.java +++ b/src/main/java/com/jambotronGroup/jambotron/JambotronApplication.java @@ -23,6 +23,7 @@ public class JambotronApplication implements CommandLineRunner { logger.error("Application Run. This is an error message."); logger.debug("Application Run. This is a debug message."); logger.info("Application Run. This is an info message."); + logger.info("Application Run. This is an info message.!!!!!!"); } @Override public void run(String... arg) throws Exception { diff --git a/src/main/java/com/jambotronGroup/jambotron/controllers/TutorialController.java b/src/main/java/com/jambotronGroup/jambotron/controllers/TutorialController.java index 70f1434..dd1c6d8 100644 --- a/src/main/java/com/jambotronGroup/jambotron/controllers/TutorialController.java +++ b/src/main/java/com/jambotronGroup/jambotron/controllers/TutorialController.java @@ -178,17 +178,19 @@ public class TutorialController { try { String imageFileName = FilesStorageServiceImpl.getFileNameFromUrl(tutorial.getTitleimage()); - String servImageFileName = FilesStorageServiceImpl.getFileNameFromUrl(servTutorial.getTitleimage()); - filesStorageService.deletePublicFile(servImageFileName); + + if(!servImageFileName.equals(imageFileName)){ + filesStorageService.deletePublicFile(servImageFileName); - Path path= filesStorageService.moveFile( - user.getId().toString(), - tutorial.getTitleimage(), - String.format("Tutorial_%s",imageFileName ) - ); + Path path= filesStorageService.moveFile( + user.getId().toString(), + tutorial.getTitleimage(), + String.format("Tutorial_%s",imageFileName ) + ); - servTutorial.setTitleimage(FilesRoutingHelper.getPublicImageUrl(path.getFileName().toString())); + servTutorial.setTitleimage(FilesRoutingHelper.getPublicImageUrl(path.getFileName().toString())); + } servTutorial = tutorialRepository.save(servTutorial); } catch (Exception e) { diff --git a/src/main/java/com/jambotronGroup/jambotron/fileUpload/FilesStorageServiceImpl.java b/src/main/java/com/jambotronGroup/jambotron/fileUpload/FilesStorageServiceImpl.java index 4b4cee0..b572440 100644 --- a/src/main/java/com/jambotronGroup/jambotron/fileUpload/FilesStorageServiceImpl.java +++ b/src/main/java/com/jambotronGroup/jambotron/fileUpload/FilesStorageServiceImpl.java @@ -19,9 +19,14 @@ import java.util.stream.Stream; @Service public class FilesStorageServiceImpl implements FilesStorageService { - private final Path root = Paths.get("uploads/user-images/"); +// private final Path root = Paths.get("uploads/user-images/"); +// +// private final Path rootPublic = Paths.get("uploads/public-images/"); + + // Update paths to use the Docker volume + private final Path root = Paths.get("/jambotron_data/uploads/user-images/"); + private final Path rootPublic = Paths.get("/jambotron_data/uploads/public-images/"); - private final Path rootPublic = Paths.get("uploads/public-images/"); @Override public void init() {