From 38ac797b2dac1d33690913c5297f088e746a86b7 Mon Sep 17 00:00:00 2001
From: David Trattnig <david.trattnig@o94.at>
Date: Thu, 6 May 2021 16:05:55 +0200
Subject: [PATCH] Initial docker config. #12

---
 .dockerignore |  3 +++
 Dockerfile    | 21 +++++++++++++++++++++
 run.sh        | 32 ++++++++++++++++++++++++++++----
 3 files changed, 52 insertions(+), 4 deletions(-)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..0e4f06c
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+.git
+node_modules
+dist
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..efa26b1
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,21 @@
+FROM node:lts-alpine AS base
+
+LABEL maintainer="David Trattnig <david.trattnig@subsquare.at>"
+
+# Base Stage
+
+WORKDIR /aura
+COPY package*.json ./
+RUN npm install
+
+# Development Stage
+
+FROM base AS dev
+EXPOSE 5000
+CMD ["./run.sh", "dev"]
+
+# Production Stage
+
+FROM base AS prod
+COPY . .
+CMD ["./run.sh", "build"]
\ No newline at end of file
diff --git a/run.sh b/run.sh
index 4f2ab61..6f38920 100755
--- a/run.sh
+++ b/run.sh
@@ -11,7 +11,7 @@ docker="false"
 # - build
 #
 
-if [[ $* =~ ^(dev|build)$ ]]; then
+if [[ $* =~ ^(dev|build|push)$ ]]; then
 	mode=$1
 fi
 
@@ -42,14 +42,38 @@ if [[ $docker == "false" ]]; then
         npm run build
 	fi
 
-
 fi
 
 
 # +++ DOCKER COMMANDS +++ #
 
 if [[ $docker == "true" ]]; then
-	BASE_D=$(realpath "${BASH_SOURCE%/*}/")
+	BASE_DIR=$(readlink -f .)
+	echo "Absolute base dir: " $BASE_DIR
+
+	### Start local development server ###
+
+	if [[ $mode == "dev" ]]; then
+		#TODO docker run command for dev server (See dev stage in Dockerfile)
+		echo "Missing implementation"
+	fi
+
+	### Create build for use in production ###
+
+	if [[ $mode == "prod" ]]; then
+		#TODO docker run command for prod build (See prod stage in Dockerfile)
+		echo "Missing implementation"
+	fi
+
+	### Create Docker Image from local project ###
 
-    # ~~~ 404 ~~~
+	if [[ $mode == "build" ]]; then
+		docker build -t autoradio/engine-clock .
+	fi
+
+	### Pushes the latest Docker Image to Docker Hub ###
+
+	if [[ $mode == "push" ]]; then
+		docker push autoradio/engine-clock
+	fi
 fi
\ No newline at end of file
-- 
GitLab