diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2152dc8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM gradle:jdk17-jammy as build + +RUN mkdir /tmp/brouter +WORKDIR /tmp/brouter +COPY . . +RUN ./gradlew clean build + +FROM openjdk:17.0.1-jdk-slim +COPY --from=build /tmp/brouter/brouter-server/build/libs/brouter-*-all.jar /brouter.jar +COPY --from=build /tmp/brouter/misc/scripts/standalone/server.sh /bin/ +COPY --from=build /tmp/brouter/misc/* /profiles2 + +CMD /bin/server.sh + diff --git a/README.md b/README.md index b1fcbc2..6a223a7 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,28 @@ The API endpoints exposed by this HTTP server are documented in the [`brouter-server/src/main/java/btools/server/request/ServerHandler.java`](brouter-server/src/main/java/btools/server/request/ServerHandler.java) file. +## BRouter with Docker + +To build the Docker image run (in the project's top level directory): + +``` +docker build -t brouter . +``` + +Download the segment files as described in the previous chapter. The folder containing the +segment files can be mounted into the container. Run BRouter as follows: + +``` +docker run --rm -v ./misc/scripts/segments4:/segments4 brouter +``` + +This will start brouter with a set of default routing profiles. + +If you want to provide your own routing profiles, you can also mount the folder containing the custom profiles: + +``` +docker run --rm -v ./misc/scripts/segments4:/segments4 -v /path/to/custom/profiles:/profiles2 brouter +``` ## Documentation