summaryrefslogtreecommitdiff
path: root/opendc-integration-jpa/mysql/Dockerfile
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2017-10-24 12:07:09 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2017-10-24 14:55:54 +0200
commitdad4487fddaccf44240f5d62fa83830f7bbf8a5d (patch)
tree41b6eab49e08a846b5a36e8cf9eb77955ff2761e /opendc-integration-jpa/mysql/Dockerfile
parent25cc35b0e4942e990c01ac6224720e8fe84fd9ae (diff)
bug(#6): Improve Docker deployment
This change improves the Docker deployment by moving the build process from runtime to (image) build time. Also, the opendc-integration-jpa module now consists of a core and mysql module, where the mysql module is a specific deployment of the integration.
Diffstat (limited to 'opendc-integration-jpa/mysql/Dockerfile')
-rw-r--r--opendc-integration-jpa/mysql/Dockerfile30
1 files changed, 30 insertions, 0 deletions
diff --git a/opendc-integration-jpa/mysql/Dockerfile b/opendc-integration-jpa/mysql/Dockerfile
new file mode 100644
index 00000000..75e419b4
--- /dev/null
+++ b/opendc-integration-jpa/mysql/Dockerfile
@@ -0,0 +1,30 @@
+# Docker mysql image for the OpenDC simulator project
+# This image requires the context to be set to the root directory of the project in order to correctly build.
+FROM gradle:alpine
+MAINTAINER Fabian Mastenbroek <f.s.mastenbroek@student.tudelft.nl>
+
+# Set the home directory to our gradle user's home.
+ENV HOME=/home/gradle
+ENV APP_HOME=$HOME/simulator
+
+# Copy OpenDC simulator
+COPY ./ $APP_HOME
+
+# Build as root
+USER root
+
+# Set the working directory to the simulator
+WORKDIR $APP_HOME
+
+# Build the application
+RUN gradle --no-daemon :opendc-integration-jpa:mysql:installDist
+
+# Fix permissions
+RUN chown -R gradle:gradle $APP_HOME
+
+# Downgrade user
+USER gradle
+
+# Start the Gradle application on run
+CMD opendc-integration-jpa/mysql/build/install/mysql/bin/mysql
+