diff --git a/server/Dockerfile b/server/Dockerfile new file mode 100644 index 000000000..33977a5d5 --- /dev/null +++ b/server/Dockerfile @@ -0,0 +1,10 @@ +FROM openjdk:8-jre-alpine +RUN mkdir /app +COPY uhabits-server.jar /app/uhabits-server.jar +WORKDIR /app +CMD ["java", \ + "-server", \ + "-XX:MaxGCPauseMillis=100", \ + "-XX:+UseStringDeduplication", \ + "-jar", \ + "uhabits-server.jar"] \ No newline at end of file diff --git a/server/build.gradle b/server/build.gradle index 543e5531a..69b0f3ab4 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -21,14 +21,19 @@ buildscript { repositories { jcenter() } - + dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "com.github.jengelman.gradle.plugins:shadow:5.2.0" + classpath "com.palantir.gradle.docker:gradle-docker:0.25.0" } } apply plugin: 'kotlin' +apply plugin: "com.github.johnrengelman.shadow" apply plugin: 'application' +apply plugin: "com.palantir.docker" +apply plugin: "com.palantir.docker-run" group 'org.isoron.uhabits' version '0.0.1' @@ -59,3 +64,21 @@ dependencies { testImplementation "io.ktor:ktor-server-tests:$ktor_version" testImplementation "org.mockito:mockito-core:2.+" } + +shadowJar { + baseName = 'uhabits-server' + classifier = null + version = null +} + +docker { + name = "uhabits-server:$version" + files "build/libs/uhabits-server.jar" +} + +dockerRun { + name = 'uhabits-server' + image "uhabits-server:$version" + ports '8080:8080' + arguments '--restart=always' +} \ No newline at end of file diff --git a/server/settings.gradle b/server/settings.gradle index e866a88ff..78f29ed87 100644 --- a/server/settings.gradle +++ b/server/settings.gradle @@ -17,4 +17,4 @@ * with this program. If not, see . */ -rootProject.name = "syncserver" +rootProject.name = "uhabits-server"