summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/pkg
diff options
context:
space:
mode:
authorManuel Bentele2021-05-20 17:04:25 +0200
committerManuel Bentele2021-05-20 17:04:25 +0200
commit497f8519fc85e33777c95755c46023ecf648a30e (patch)
treed21bc6774d307b4ce5ddc07cdc98798c87926fd1 /dozentenmodulserver/pkg
parent[server] Update initial database schema and test dataset (diff)
downloadtutor-module-497f8519fc85e33777c95755c46023ecf648a30e.tar.gz
tutor-module-497f8519fc85e33777c95755c46023ecf648a30e.tar.xz
tutor-module-497f8519fc85e33777c95755c46023ecf648a30e.zip
[server] Start dozmod-server Docker container after database Docker container is ready
Diffstat (limited to 'dozentenmodulserver/pkg')
-rw-r--r--dozentenmodulserver/pkg/docker/dozmod-server_dockerfile36
1 files changed, 16 insertions, 20 deletions
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