From b20611414494df44997ae7320a27314150ff4c87 Mon Sep 17 00:00:00 2001 From: LSmyrnaios Date: Fri, 4 Feb 2022 15:49:56 +0200 Subject: [PATCH] - Allow the user to build, push and run the App in Docker, straight though the "installAndRun.sh" script. - Re-add the logback-spring configuration. - Change the docker-app name. --- Dockerfile | 4 ++-- installAndRun.sh | 34 +++++++++++++++++++++++---- src/main/resources/logback-spring.xml | 33 ++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/logback-spring.xml diff --git a/Dockerfile b/Dockerfile index e567ddd..fc501d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM openjdk:8-jdk-alpine -COPY build/libs/*-SNAPSHOT.jar app.jar +COPY build/libs/*-SNAPSHOT.jar urls_controller.jar EXPOSE 1880 -ENTRYPOINT ["java","-jar","/app.jar", "--spring.config.location=file:///mnt/config/application.properties"] +ENTRYPOINT ["java","-jar","/urls_controller.jar", "--spring.config.location=file:///mnt/config/application.properties"] diff --git a/installAndRun.sh b/installAndRun.sh index 1970b42..28201e1 100755 --- a/installAndRun.sh +++ b/installAndRun.sh @@ -1,11 +1,20 @@ cd "${0%/*}" || (echo "Could not chdir to this script's dir!" && exit) # Change the working directory to the script's directory, when running from other location. justInstall=0 +shouldRunInDocker=0 if [[ $# -eq 1 ]]; then justInstall=$1 -elif [[ $# -gt 1 ]]; then - echo -e "Wrong number of arguments given: ${#}\nPlease execute it like: script.sh "; exit 1 +elif [[ $# -eq 2 ]]; then + justInstall=$1 + shouldRunInDocker=$2 +elif [[ $# -gt 2 ]]; then + echo -e "Wrong number of arguments given: ${#}\nPlease execute it like: script.sh "; exit 1 +fi + +if [[ justInstall -eq 1 && shouldRunInDocker -eq 1 ]]; then + echo -e "Cannot run in docker without re-building the project (just to be safe). Setting \"justInstall\" to < 0 >" + justInstall=0 fi gradleVersion="7.3.3" @@ -27,10 +36,25 @@ if [[ justInstall -eq 0 ]]; then #gradle tasks # For debugging installation #gradle -v # For debugging installation - gradle clean - gradle build + gradle clean build + + if [[ shouldRunInDocker -eq 1 ]]; then + echo "Give the username for the Docker Hub:" + read -r username + echo -e "\nBuilding docker image..\n" + sudo docker --version || (echo -e "Docker was not found!"; exit 9) + dockerImage=${username}"/urls_controller:latest" + sudo docker build -t "${dockerImage}" . + echo -e "\nPushing docker image.. (the account password is required)..\n" + (sudo docker login -u "${username}" && sudo docker push "${dockerImage}") || true + (sudo mkdir -p "$HOME"/tmp/config && sudo cp ./src/main/resources/application.properties "$HOME"/tmp/config) || true + sudo docker run -d --mount type=bind,source="$HOME"/tmp/config,target=/mnt/config -p 1880:1880 "${dockerImage}" && echo "The docker container started running." + # Run in "detached mode" (in the background). + fi else export PATH=/opt/gradle/gradle-${gradleVersion}/bin:$PATH # Make sure the gradle is still accessible (it usually isn't without the "export"). fi -gradle bootRun +if [[ shouldRunInDocker -ne 1 ]]; then + gradle bootRun +fi diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..86ba426 --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,33 @@ + + + + logs/UrlsController.log + + + logs/UrlsController.%i.log.zip + 1 + 20 + + + + 50MB + + + + UTF-8 + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M\(@%line\) - %msg%n + + + + + + UTF-8 + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{36}.%M\(@%line\)) - %msg%n + + + + + + + + \ No newline at end of file