diff --git a/validation_service_api/deployment/Dockerfile.staging b/validation_service_api/deployment/Dockerfile.staging index 4a2b57cf..06d8f4ca 100644 --- a/validation_service_api/deployment/Dockerfile.staging +++ b/validation_service_api/deployment/Dockerfile.staging @@ -5,45 +5,25 @@ # docker build -t validation_service_v3beta -f deployment/Dockerfile . # # To run the application: -# docker run -d -p 443 -v /etc/letsencrypt:/etc/letsencrypt \ +# docker run -d -p 80 \ # -e KG_SERVICE_ACCOUNT_REFRESH_TOKEN \ # -e KG_SERVICE_ACCOUNT_CLIENT_ID \ # -e KG_SERVICE_ACCOUNT_SECRET \ # validation_service_v3beta -FROM docker-registry.ebrains.eu/model-catalog/debian:bullseye-slim +FROM docker-registry.ebrains.eu/model-catalog/python:3.11 -MAINTAINER Andrew Davison +LABEL org.opencontainers.image.authors="Andrew Davison " -ENV DEBIAN_FRONTEND noninteractive -RUN apt-get update --fix-missing; apt-get -y -q install python-pkg-resources python3-pkg-resources python3-pip supervisor build-essential nginx-extras git wget -RUN unset DEBIAN_FRONTEND +WORKDIR /code -RUN pip3 install --upgrade pip +COPY requirements.txt.lock /code/requirements.txt +RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt -ADD https://api.github.com/repos/HumanBrainProject/fairgraph/git/refs/heads/master fairgraph_version.json -RUN git clone https://github.com/HumanBrainProject/fairgraph.git --branch=master --single-branch -RUN pip3 install ./fairgraph +COPY validation_service /code/validation_service +COPY deployment/build_info.json /code/validation_service/build_info.json -ENV SITEDIR /home/docker/site +RUN useradd appuser --uid 1001 +USER appuser -COPY requirements.txt.lock $SITEDIR/ -RUN pip3 install -r $SITEDIR/requirements.txt.lock - -COPY validation_service $SITEDIR/validation_service -RUN wget https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json -O $SITEDIR/validation_service/spdx_licences.json -COPY deployment/build_info.json $SITEDIR/validation_service - -ENV PYTHONPATH /home/docker:/home/docker/site:/usr/local/lib/python3.9/dist-packages:/usr/lib/python3.9/dist-packages - -RUN echo "daemon off;" >> /etc/nginx/nginx.conf -RUN rm /etc/nginx/sites-enabled/default -COPY deployment/nginx-app-staging.conf /etc/nginx/sites-enabled/nginx-app.conf -COPY deployment/supervisor-app.conf /etc/supervisor/conf.d/ -#RUN ln -sf /dev/stdout /var/log/nginx/access.log -#RUN ln -sf /dev/stderr /var/log/nginx/error.log - -EXPOSE 443 -#EXPOSE 80 - -CMD ["supervisord", "-n", "-c", "/etc/supervisor/conf.d/supervisor-app.conf"] +CMD ["uvicorn", "validation_service.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80", "--timeout-keep-alive", "600"] diff --git a/validation_service_api/deployment/nginx-app-staging.conf b/validation_service_api/deployment/nginx-app-staging.conf deleted file mode 100644 index a1accf7b..00000000 --- a/validation_service_api/deployment/nginx-app-staging.conf +++ /dev/null @@ -1,44 +0,0 @@ -# nginx configuration - -upstream uvicorn { - server unix:/tmp/uvicorn.sock; -} - -server { - listen 80; - - server_name validation-staging.brainsimulation.eu; - return 301 https://validation-staging.brainsimulation.eu$request_uri; -} - -server { - listen 443 ssl; - - # ssl on; - ssl_certificate /etc/letsencrypt/live/validation-staging.brainsimulation.eu/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/validation-staging.brainsimulation.eu/privkey.pem; - - server_name validation-staging.brainsimulation.eu; - charset utf-8; - client_max_body_size 4G; - #client_body_timeout 300s; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_redirect off; - proxy_buffering off; - proxy_pass http://uvicorn; - proxy_read_timeout 600s; - #?# fastcgi_read_timeout 300; - #?# proxy_connect_timeout 300; - proxy_send_timeout 300; - send_timeout 300; - } - - location /static { - alias /home/docker/site/static; - } - -}