diff --git a/Dockerfile b/Dockerfile index 152860d0355fa9628810e275eeb2744b20e59b34..b0d3996034d87858e0ab1a6901bd44de14414fb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,14 +2,19 @@ FROM java:openjdk-8u92-jdk-alpine MAINTAINER mirco.nasuti@chuv.ch -RUN apk add --update ca-certificates wget && rm -rf /var/cache/apk/* /tmp/* && update-ca-certificates -RUN wget https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-amd64-v0.2.0.tar.gz -RUN tar -C /usr/local/bin -xvzf dockerize-linux-amd64-v0.2.0.tar.gz +ENV DOCKERIZE_VERSION=v0.2.0 -COPY ./docker/runner/config/application.tmpl /config/application.tmpl -COPY ./docker/runner/README.md / -COPY ./target/portal-backend-DOCKER_BUILD.jar backend.jar +RUN apk add --update ca-certificates wget \ + && rm -rf /var/cache/apk/* /tmp/* \ + && update-ca-certificates \ + && wget -O /tmp/dockerize.tar.gz https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize.tar.gz \ + && rm -rf /tmp/dockerize.tar.gz + +COPY docker/runner/config/application.tmpl /config/application.tmpl +COPY docker/runner/README.md docker/runner/run.sh / +COPY target/portal-backend-DOCKER_BUILD.jar backend.jar EXPOSE 8080 -CMD ["dockerize", "-template", "/config/application.tmpl:/config/application.yml", "java", "-jar", "backend.jar"] +CMD ["./run.sh"] diff --git a/docker/runner/README.md b/docker/runner/README.md index 564ebd0a69a63aa654e1b51c4495bc389c04e916..3e4ab2aaad8b5e659dcb44192b45db42b98419b1 100644 --- a/docker/runner/README.md +++ b/docker/runner/README.md @@ -10,6 +10,7 @@ You need to configure a few things using some environment variables. Environment variables: * DB_URL: JDBC URL to connect to the database, for example "jdbc:postgresql://db:5432/portal" +* DB_SERVER: optional, address of the database server, for example DB_SERVER="db:5432". Used to wait for the database to be up and running. * DB_USER: User to use when connecting to the database * DB_PASSWORD: Password to use when connecting to the database * CONTEXT_PATH: context path appended to all services running in this container. Default to "/services" diff --git a/docker/runner/run.sh b/docker/runner/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..fbeb2226960301a6efa7f93200eec0caa48d2e8f --- /dev/null +++ b/docker/runner/run.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +OPTS="-template /config/application.tmpl:/config/application.yml" +if [ ! -z "$DB_SERVER" ]; then + OPTS="$OPTS -wait $DB_SERVER -timeout 60s" +fi +dockerize $OPTS java -jar backend.jar