diff --git a/.gitattributes b/.gitattributes index b1d38bc670c26015e96cc56ead3e7829a47a519d..676b3497f60df4002a4d0f332ad71f1f31f2025c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1900,8 +1900,12 @@ LCU/Maintenance/DBInterface/test/models/t_wincc_models.sh -text LCU/Maintenance/DBInterface/test/models/test_rtsm_models.py -text LCU/Maintenance/DBInterface/test/models/test_wincc_models.py -text LCU/Maintenance/DBInterface/test/postgres_testrunner.py -text +LCU/Maintenance/Docker/BackgroundWorkers/Dockerfile -text +LCU/Maintenance/Docker/BackgroundWorkers/entrypoint.sh -text LCU/Maintenance/Docker/BaseMaintenance/Dockerfile -text LCU/Maintenance/Docker/DBInterface/Dockerfile -text +LCU/Maintenance/Docker/NginxProxy/Dockerfile -text +LCU/Maintenance/Docker/NginxProxy/nginx.conf -text LCU/Maintenance/Docker/RESTService/Dockerfile -text LCU/Maintenance/Docker/RESTService/entrypoint.sh -text LCU/Maintenance/Docker/docker-compose.yml -text diff --git a/LCU/Maintenance/Docker/BackgroundWorkers/Dockerfile b/LCU/Maintenance/Docker/BackgroundWorkers/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..a93bfbb1db132cb2e4cbf17d6460d56a9980cc96 --- /dev/null +++ b/LCU/Maintenance/Docker/BackgroundWorkers/Dockerfile @@ -0,0 +1,10 @@ +FROM lofar-maintenance-base +COPY --from=lofar-maintenance-dbinterface /opt/lofar/ /opt/lofar + +COPY ./entrypoint.sh /root/ + +SHELL ["/bin/bash"] + +ENTRYPOINT /root/entrypoint.sh + +ENV N_WORKERS=1 \ No newline at end of file diff --git a/LCU/Maintenance/Docker/BackgroundWorkers/entrypoint.sh b/LCU/Maintenance/Docker/BackgroundWorkers/entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..0e1af49852722a3cf8d7d34a18bb5042f669ce1d --- /dev/null +++ b/LCU/Maintenance/Docker/BackgroundWorkers/entrypoint.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +source /opt/lofar/lofarinit.sh diff --git a/LCU/Maintenance/Docker/BaseMaintenance/Dockerfile b/LCU/Maintenance/Docker/BaseMaintenance/Dockerfile index 48ad26b13eba2945f6c505c092cdbbf2bffc7228..e78ceec06f016e01538c60a164ddab2090b04923 100644 --- a/LCU/Maintenance/Docker/BaseMaintenance/Dockerfile +++ b/LCU/Maintenance/Docker/BaseMaintenance/Dockerfile @@ -11,4 +11,6 @@ RUN pip3 install beautifultable==0.7.0 \ django-coreapi==2.3 \ django-filter==2.1 \ inotify==0.2.10 \ + matplotlib==3.1.0 \ requests==2.22 + diff --git a/LCU/Maintenance/Docker/NginxProxy/Dockerfile b/LCU/Maintenance/Docker/NginxProxy/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..03acbe8704df2d51e568c50f023ec89c6ea6e43d --- /dev/null +++ b/LCU/Maintenance/Docker/NginxProxy/Dockerfile @@ -0,0 +1,10 @@ +FROM lofar-maintenance-restservice as django_staticfiles_source + +RUN source /opt/lofar/lofarinit.sh && \ + mkdir -p /opt/lofar/var/www && \ + cd /opt/lofar/var/www && \ + python3 /opt/lofar/lib64/python3.6/site-packages/lofar/maintenance/manage.py collectstatic + +FROM nginx:1.16.0 +COPY --from=django_staticfiles_source /opt/lofar/var/www/ /opt/lofar/var/www/ +COPY nginx.conf /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/LCU/Maintenance/Docker/NginxProxy/nginx.conf b/LCU/Maintenance/Docker/NginxProxy/nginx.conf new file mode 100644 index 0000000000000000000000000000000000000000..e42fb8e46ec01e32e01130e8df14ceba4a479fa0 --- /dev/null +++ b/LCU/Maintenance/Docker/NginxProxy/nginx.conf @@ -0,0 +1,14 @@ +server { + listen 80; + server_name _; + + location /api { + proxy_pass http://lofar-maintenance-restservice:8000; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location /static { + root /opt/lofar/var/www/; + } +} diff --git a/LCU/Maintenance/Docker/RESTService/Dockerfile b/LCU/Maintenance/Docker/RESTService/Dockerfile index f7e6dde09870a013533af388424b2f8f15d40743..0493748ac33a4049272eae40306f346f4a719a4b 100644 --- a/LCU/Maintenance/Docker/RESTService/Dockerfile +++ b/LCU/Maintenance/Docker/RESTService/Dockerfile @@ -1,14 +1,14 @@ -FROM lofar-maintenance-dbinterface - +FROM lofar-maintenance-base +COPY --from=lofar-maintenance-dbinterface /opt/lofar/ /opt/lofar RUN pip3.6 install gunicorn==19.9.0 \ gevent \ django-silk==3.0.2 -COPY LCU/Maintenance/Docker/RESTService/entrypoint.sh /root/ +COPY ./entrypoint.sh /root/ -SHELL ["/bin/bash"] +SHELL ["/bin/sh", "-c"] ENTRYPOINT /root/entrypoint.sh -ENV N_WORKERS=1 \ No newline at end of file +ENV N_WORKERS=1 diff --git a/LCU/Maintenance/Docker/RESTService/entrypoint.sh b/LCU/Maintenance/Docker/RESTService/entrypoint.sh index 7fc58b8f2727ec845e0cc3d797456a00248aaf3e..d9c7e8eec2228ceb78060f558b5c12799ba36dff 100755 --- a/LCU/Maintenance/Docker/RESTService/entrypoint.sh +++ b/LCU/Maintenance/Docker/RESTService/entrypoint.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash source /opt/lofar/lofarinit.sh -gunicorn -w $N_WORKERS -k gevent lofar.maintenance.django_postgresql.wsgi:application $@ \ No newline at end of file +gunicorn -w $N_WORKERS -k gevent lofar.maintenance.django_postgresql.wsgi:application -b 0.0.0.0:8000 $@ \ No newline at end of file diff --git a/LCU/Maintenance/Docker/docker-compose.yml b/LCU/Maintenance/Docker/docker-compose.yml index ebf033f3c02714bbfc25f75fc63b908d2de9e344..2f50224636dcfc22ffc2e13749fd8a84d93a3936 100644 --- a/LCU/Maintenance/Docker/docker-compose.yml +++ b/LCU/Maintenance/Docker/docker-compose.yml @@ -4,10 +4,47 @@ services: lofar-maintenance-base: image: lofar-maintenance-base build: - context: ../../../ - dockerfile: LCU/Maintenance/Docker/BaseMaintenance/Dockerfile + context: BaseMaintenance + dockerfile: Dockerfile + lofar-maintenance-dbinterface: image: lofar-maintenance-dbinterface build: context: ../../../ - dockerfile: LCU/Maintenance/Docker/DBInterface/Dockerfile \ No newline at end of file + dockerfile: LCU/Maintenance/Docker/DBInterface/Dockerfile + + lofar-maintenance-restservice: + image: lofar-maintenance-restservice + #links: + # - lofar-maintenance-backgroundworkers + expose: + - 8000 + build: + context: RESTService/ + dockerfile: Dockerfile + volumes: + - /home/mmancini/.lofar/dbcredentials/:/root/.lofar/dbcredentials:ro + networks: + - back + + lofar-maintenance-backgroundworkers: + image: lofar-maintenance-backgroundworkers + build: + context: BackgroundWorkers + dockerfile: Dockerfile + + lofar-maintenance-nginx-proxy: + image: lofar-maintenance-nginxproxy + ports: + - 8888:80 + build: + context: NginxProxy + dockerfile: Dockerfile + links: + - lofar-maintenance-restservice + networks: + - back + +networks: + back: + driver: bridge