FROM eu.gcr.io/avatao-challengestore/tutorial-framework # Install webservice dependencies RUN pip3 install Flask==1.0 \ SQLAlchemy==1.2.7 \ passlib==1.7.1 \ git+https://github.com/avatao-content/tfwconnector.git#subdirectory=python3 # Define variables to use later ENV TFW_SERVER_DIR="/srv/.tfw" \ TFW_WEBSERVICE_DIR="/srv/webservice" \ TFW_IDE_WD="/home/${AVATAO_USER}/workdir" \ TFW_TERMINADO_WD="/home/${AVATAO_USER}/workdir" # Copy TFW related stuff to a dedicated directory COPY solvable/src ${TFW_SERVER_DIR}/ # Copy webservice to a dedicated directory COPY solvable/src/webservice/ ${TFW_WEBSERVICE_DIR}/ ADD solvable/src/webservice/frontend-deps.tar ${TFW_WEBSERVICE_DIR}/static # Create IDE directory, symlink server source and give proper permissions to AVATAO_USER RUN mkdir -p ${TFW_IDE_WD} &&\ ln -s ${TFW_WEBSERVICE_DIR}/user_ops.py ${TFW_IDE_WD} &&\ chown -R ${AVATAO_USER}: "${TFW_IDE_WD}" "${TFW_WEBSERVICE_DIR}" &&\ chmod -R 755 "${TFW_IDE_WD}" "${TFW_WEBSERVICE_DIR}" # Hide TFW related code from user RUN chown -R root:root ${TFW_SERVER_DIR} && chmod -R 700 ${TFW_SERVER_DIR} # Make AVATAO_USER's home writeable and set it as WORKDIR # Make webservice directory writable VOLUME ["/home/${AVATAO_USER}", "${TFW_WEBSERVICE_DIR}"] WORKDIR /home/${AVATAO_USER}