From 497f8519fc85e33777c95755c46023ecf648a30e Mon Sep 17 00:00:00 2001 From: Manuel Bentele Date: Thu, 20 May 2021 17:04:25 +0200 Subject: [server] Start dozmod-server Docker container after database Docker container is ready --- .../pkg/docker/dozmod-server_dockerfile | 36 ++++++++++------------ 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'dozentenmodulserver/pkg') diff --git a/dozentenmodulserver/pkg/docker/dozmod-server_dockerfile b/dozentenmodulserver/pkg/docker/dozmod-server_dockerfile index cb372793..2f15f2bf 100644 --- a/dozentenmodulserver/pkg/docker/dozmod-server_dockerfile +++ b/dozentenmodulserver/pkg/docker/dozmod-server_dockerfile @@ -2,17 +2,16 @@ FROM ubuntu:focal ARG DOZMOD_SERVER_FILE ARG DOZMOD_CONFIG_FILE -ARG DOZMOD_MASTER_SERVER=localhost + ARG DOZMOD_SERVER_PATH=/opt/bwLehrpool ARG DOZMOD_VSTORE_PATH=/mnt/bwLehrpool -ARG DOZMOD_DATABASE_NAME=dozmod -ARG DOZMOD_DATABASE_HOST=localhost -ARG DOZMOD_DATABASE_USER=dozmod -ARG DOZMOD_DATABASE_PASSWORD=dozmod +ENV DOZMOD_DATABASE_HOST=localhost +ENV DOZMOD_DATABASE_PORT=3306 +ENV DOZMOD_DATABASE_CONNECTION_WAIT_TIMEOUT=1m # install required packages RUN apt-get update -y && \ - apt-get install -y openjdk-8-jre-headless + apt-get install -y openjdk-8-jre-headless wget # make folder for dozmod Java server application and VMs RUN mkdir -p ${DOZMOD_SERVER_PATH} @@ -21,23 +20,20 @@ RUN mkdir -p ${DOZMOD_VSTORE_PATH} # change working directory WORKDIR ${DOZMOD_SERVER_PATH} -# copy application and configuration file +# install dockerize +ENV DOCKERIZE_VERSION=v0.6.1 +RUN wget -q https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_VERSION}/dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz && \ + tar -C /usr/local/bin -xzvf dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz && \ + rm dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz + +# copy application into the image COPY ${DOZMOD_SERVER_FILE} dozmod-server.jar -# customize configuration -RUN echo "#" \ - "\n""# Autogenerated configuration. Do not edit!" \ - "\n""#" \ - "\n""vmstore.path = ${DOZMOD_VSTORE_PATH}" \ - "\n""db.uri = jdbc:mysql://${DOZMOD_DATABASE_HOST}/${DOZMOD_DATABASE_NAME}?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&characterSetResults=utf8&connectionCollation=utf8mb4_unicode_ci" \ - "\n""db.username = ${DOZMOD_DATABASE_USER}" \ - "\n""db.password = ${DOZMOD_DATABASE_PASSWORD}" \ - "\n""db.location-table = " \ - "\n""master.address = ${DOZMOD_MASTER_SERVER}" > config.properties && \ - sed -i 's/[[:space:]]\+$//' config.properties +# copy configuration template into the image +COPY ${DOZMOD_CONFIG_FILE} config.properties.tmpl # expose network ports EXPOSE 9080 9090 9091 -# run the dozmod-server -CMD [ "java", "-jar", "dozmod-server.jar" ] +# finalize configuration from environment variables and run the dozmod-server +CMD dockerize -template config.properties.tmpl:config.properties -wait tcp://${DOZMOD_DATABASE_HOST}:${DOZMOD_DATABASE_PORT} -timeout ${DOZMOD_DATABASE_CONNECTION_WAIT_TIMEOUT} java -jar dozmod-server.jar -- cgit v1.2.3-55-g7522