From 2ebae690448418f6a630fca32259fdae9e63c949 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Wed, 17 Apr 2019 13:45:21 +0200 Subject: [PATCH] [docker] build the git-bridge in docker Signed-off-by: Jakob Ackermann --- services/git-bridge/.dockerignore | 4 ++++ services/git-bridge/Dockerfile | 19 ++++++++++++++++++- services/git-bridge/README.md | 31 +++++++++++++++++++++---------- 3 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 services/git-bridge/.dockerignore diff --git a/services/git-bridge/.dockerignore b/services/git-bridge/.dockerignore new file mode 100644 index 0000000000..50497becb8 --- /dev/null +++ b/services/git-bridge/.dockerignore @@ -0,0 +1,4 @@ +* +!/lib +!/src/main +!/pom.xml diff --git a/services/git-bridge/Dockerfile b/services/git-bridge/Dockerfile index a8b16e79f2..aa9da99b67 100644 --- a/services/git-bridge/Dockerfile +++ b/services/git-bridge/Dockerfile @@ -13,4 +13,21 @@ RUN apt-get update && \ RUN mkdir /app -WORKDIR /app \ No newline at end of file +WORKDIR /app + +COPY . /app +RUN mvn clean package \ +# The name of the created jar contains the current version tag. +# Rename it to a static path that can be used for copying. +&& find /app/target \ + -name 'writelatex-git-bridge*jar-with-dependencies.jar' \ + -exec mv {} /git-bridge.jar \; + +FROM openjdk:8-jre + +USER www-data + +ENTRYPOINT ["java", "-jar", "/git-bridge.jar"] +CMD ["/conf/runtime.json"] + +COPY --from=0 /git-bridge.jar / diff --git a/services/git-bridge/README.md b/services/git-bridge/README.md index 1b01ddc49e..acfc748b27 100644 --- a/services/git-bridge/README.md +++ b/services/git-bridge/README.md @@ -1,13 +1,26 @@ -writelatex-git-bridge -===================== +# writelatex-git-bridge + +## Docker + +The `Dockerfile` contains all the requirements for building and running the + writelatex-git-bridge. + +```bash +# build the image +docker build -t writelatex-git-bridge . + +# run it with the demo config +docker run -v `pwd`/conf/local.json:/conf/runtime.json writelatex-git-bridge +``` + +## Native install + +### Required packages -Required --------- * `maven` (for building, running tests and packaging) * `jdk-8` (for compiling and running) -Commands --------- +### Commands To be run from the base directory: @@ -20,8 +33,7 @@ To be run from the base directory: **Clean**: `mvn clean` -Installation ------------- +### Installation Install dependencies: @@ -39,8 +51,7 @@ Run `mvn package` to build, test, and package it into a jar at `target/writelate Use `java -jar ` to run the server. -Runtime Configuration ---------------------- +## Runtime Configuration The configuration file is in `.json` format.