From e3496f57d7fb2ee98dcc3026851b26ac47cc9da2 Mon Sep 17 00:00:00 2001 From: Ludovic Claude <ludovic.claude54@gmail.com> Date: Fri, 26 Aug 2016 18:50:26 +0200 Subject: [PATCH] Docker container: Wait for database --- Dockerfile | 19 ++++++++++++------- docker/runner/README.md | 1 + docker/runner/run.sh | 7 +++++++ 3 files changed, 20 insertions(+), 7 deletions(-) create mode 100755 docker/runner/run.sh diff --git a/Dockerfile b/Dockerfile index 152860d03..b0d399603 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 564ebd0a6..3e4ab2aaa 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 000000000..fbeb22269 --- /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 -- GitLab