Add docker files

This commit is contained in:
Victor 2020-09-30 23:01:31 +03:00
parent e21f34c10e
commit d26caebd3f
4 changed files with 34 additions and 2 deletions

5
.dockerignore Normal file
View File

@ -0,0 +1,5 @@
.gradle
.build-cache
.idea
build
README.md

20
Dockerfile Normal file
View File

@ -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

View File

@ -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()

View File

@ -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<String> stringProp(String name) {
return Optional.ofNullable(System.getenv(name))
.or(() -> Optional.ofNullable(System.getProperty(name)));