From e220794da9972fffedf4c6ccc240fe26bea67fa5 Mon Sep 17 00:00:00 2001 From: Nick Barrett Date: Tue, 23 Jun 2020 15:50:07 +0100 Subject: [PATCH 1/5] Build the JS bundle before the Docker image. --- kubetools.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kubetools.yml b/kubetools.yml index d165e82..b322fd4 100644 --- a/kubetools.yml +++ b/kubetools.yml @@ -5,6 +5,11 @@ containerContexts: elasticsurgery: build: dockerfile: docker/Dockerfile + preBuildCommands: + - [rm, -rf, frontend/build/] # remove any existing + - [npm, --prefix, frontend/, prune] + - [npm, --prefix, frontend/, install, --quiet] + - [npm, --prefix, frontend/, run build] dev: volumes: - ./:/opt/elasticsurgery From 4ac4d014e634400d58e5a69ae8aaa0b5128290c1 Mon Sep 17 00:00:00 2001 From: Nick Barrett Date: Tue, 23 Jun 2020 15:50:29 +0100 Subject: [PATCH 2/5] Remove `frontend/build/` from docker ignore. --- .dockerignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 85fddf4..6bde8b9 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1 @@ frontend/node_modules/ -frontend/build/ From 39dbfbe0b3527a777b06066d4e65a09e0b7f43e6 Mon Sep 17 00:00:00 2001 From: Nick Barrett Date: Tue, 23 Jun 2020 15:52:07 +0100 Subject: [PATCH 3/5] Fix missing comma in pre build command. --- kubetools.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubetools.yml b/kubetools.yml index b322fd4..b90faa8 100644 --- a/kubetools.yml +++ b/kubetools.yml @@ -9,7 +9,7 @@ containerContexts: - [rm, -rf, frontend/build/] # remove any existing - [npm, --prefix, frontend/, prune] - [npm, --prefix, frontend/, install, --quiet] - - [npm, --prefix, frontend/, run build] + - [npm, --prefix, frontend/, run, build] dev: volumes: - ./:/opt/elasticsurgery From fb25f3f0205d5f11a1077f59f9be3e2cda778b6e Mon Sep 17 00:00:00 2001 From: Nick Barrett Date: Tue, 23 Jun 2020 16:02:37 +0100 Subject: [PATCH 4/5] Add index view. --- backend/elasticsurgery/views/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/elasticsurgery/views/__init__.py b/backend/elasticsurgery/views/__init__.py index 6f9177f..8f470d4 100644 --- a/backend/elasticsurgery/views/__init__.py +++ b/backend/elasticsurgery/views/__init__.py @@ -1,4 +1,4 @@ -from flask import jsonify +from flask import jsonify, render_template from ..app import app @@ -6,3 +6,8 @@ @app.route('/ping', methods=('GET',)) def get_ping(): return jsonify(ping='pong') + + +@app.route('/', methods=('GET',)) +def get_frontend(): + return render_template('index.html') From dee07e3f639a4f3aeefcf6b74695cb80830d62d5 Mon Sep 17 00:00:00 2001 From: Nick Barrett Date: Tue, 23 Jun 2020 16:02:51 +0100 Subject: [PATCH 5/5] Use correct location for static/template directories. --- backend/elasticsurgery/app.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/elasticsurgery/app.py b/backend/elasticsurgery/app.py index 14b2daa..8bd0f49 100644 --- a/backend/elasticsurgery/app.py +++ b/backend/elasticsurgery/app.py @@ -1,7 +1,18 @@ +from os import path + from flask import Flask from . import settings -app = Flask('elasticsurgery') + +frontend_build_dir = path.abspath(path.join( + path.dirname(__file__), '..', '..', 'frontend', 'build', +)) + +app = Flask( + 'elasticsurgery', + static_folder=path.join(frontend_build_dir, 'static'), + template_folder=frontend_build_dir, +) app.debug = settings.DEBUG app.secret_key = settings.SECRET_KEY