From d26caebd3fac6d6ffc011a47ee13c1c64e348258 Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 30 Sep 2020 23:01:31 +0300 Subject: [PATCH] Add docker files --- .dockerignore | 5 +++++ Dockerfile | 20 +++++++++++++++++++ build.gradle | 2 +- .../com/annimon/similarimagesbot/Main.java | 9 ++++++++- 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e10cedb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.gradle +.build-cache +.idea +build +README.md \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b3e8def --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM gradle:6.6.1-jdk11 AS cache +RUN mkdir -p /home/gradle/cache_home +ENV GRADLE_USER_HOME=/home/gradle/cache_home +COPY build.gradle /home/gradle/java-code/ +WORKDIR /home/gradle/java-code +RUN GRADLE_OPTS="-Xmx256m" gradle build --build-cache --stacktrace -i --no-daemon + +FROM gradle:6.6.1-jdk11 as builder +COPY --from=cache /home/gradle/cache_home /home/gradle/.gradle +COPY . /usr/src/java-code +WORKDIR /usr/src/java-code +RUN GRADLE_OPTS="-Xmx256m" gradle shadowJar --build-cache --stacktrace --no-daemon + +FROM openjdk:11 +RUN mkdir -p /app +COPY --from=builder /usr/src/java-code/build/libs/SimilarImagesBot-1.0-all.jar /app/SimilarImagesBot-1.0-all.jar +ENV BOT_TOKEN '' +ENV ADMIN_ID 0 +ENV MODE 'once' +CMD java -jar /app/SimilarImagesBot-1.0-all.jar diff --git a/build.gradle b/build.gradle index 4bf79bd..8576045 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ sourceCompatibility = 11 targetCompatibility = 11 mainClassName = 'com.annimon.similarimagesbot.Main' group 'com.annimon' -version '1.0-SNAPSHOT' +version '1.0' repositories { jcenter() diff --git a/src/main/java/com/annimon/similarimagesbot/Main.java b/src/main/java/com/annimon/similarimagesbot/Main.java index 6ca2119..32fae9e 100644 --- a/src/main/java/com/annimon/similarimagesbot/Main.java +++ b/src/main/java/com/annimon/similarimagesbot/Main.java @@ -10,13 +10,20 @@ public class Main { final ImageIndexer indexer = new ImageIndexer(); final var handler = new BotHandler(botToken, indexer); handler.setAdminId(longProp("ADMIN_ID").orElse(0L)); - if (args.length == 1 && args[0].equalsIgnoreCase("once")) { + if (isOnceMode() || (args.length == 1 && args[0].equalsIgnoreCase("once"))) { + System.out.println("Started in once mode"); handler.runOnce(); } else { + System.out.println("Started in listen mode"); handler.run(); } } + private static boolean isOnceMode() { + final var mode = stringProp("MODE").orElse("once"); + return mode.equalsIgnoreCase("once"); + } + private static Optional stringProp(String name) { return Optional.ofNullable(System.getenv(name)) .or(() -> Optional.ofNullable(System.getProperty(name)));