From acc44935179cda665454d450ec246377f41f5afb Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Wed, 7 Nov 2018 18:49:21 +0100 Subject: [PATCH] Generate the OpenAPI in the Dockerfile When we build the docker container, we need to generate the openapi description in it so the geenrated API actually matches the code the container is running. --- Dockerfile | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0a7479b43..7be32b608 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,7 +75,7 @@ ARG DEFAULT_AUTHENTICATION_METHOD # Set the environment variables (defaults where required) # DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303 # ENV BUILD_DEPS="paxctl" -ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential python git ca-certificates gcc-7" \ +ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential python python3 python3-distutils git ca-certificates gcc-7" \ NODE_VERSION=v8.15.0 \ METEOR_RELEASE=1.6.0.1 \ USE_EDGE=false \ @@ -251,6 +251,16 @@ RUN \ cd /home/wekan/.meteor && \ gosu wekan:wekan /home/wekan/.meteor/meteor -- help; \ \ + # extract the OpenAPI specification + mkdir -p /home/wekan/python && \ + chown wekan:wekan --recursive /home/wekan/python && \ + cd /home/wekan/python && \ + gosu wekan:wekan git clone --depth 1 -b master git://github.com/Kronuz/esprima-python && \ + cd /home/wekan/python/esprima-python && \ + python3 setup.py install --record files.txt && \ + cd /home/wekan/app &&\ + mkdir -p ./public/api && \ + python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml; \ # Build app cd /home/wekan/app && \ gosu wekan:wekan /home/wekan/.meteor/meteor add standard-minifier-js && \ @@ -279,6 +289,8 @@ RUN \ rm -R /home/wekan/.meteor && \ rm -R /home/wekan/app && \ rm -R /home/wekan/app_build && \ + cat /home/wekan/python/esprima-python/files.txt | xargs rm -R && \ + rm -R /home/wekan/python && \ rm /home/wekan/install_meteor.sh ENV PORT=8080