From b6e97fb00bd6514ecc4ffca843e8a7f09573fd87 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Sun, 7 May 2023 23:12:12 +0200 Subject: [PATCH] Fixed both Python services --- dbrepo-analyse-service/Dockerfile | 11 +++++------ dbrepo-analyse-service/healthcheck.sh | 5 +++++ dbrepo-analyse-service/service_ready | 11 ----------- dbrepo-semantics-service/Dockerfile | 11 ++++------- dbrepo-semantics-service/healthcheck.sh | 5 +++++ dbrepo-semantics-service/pywsgi.py | 2 -- dbrepo-semantics-service/service_ready | 6 ------ 7 files changed, 19 insertions(+), 32 deletions(-) create mode 100644 dbrepo-analyse-service/healthcheck.sh delete mode 100644 dbrepo-analyse-service/service_ready create mode 100644 dbrepo-semantics-service/healthcheck.sh delete mode 100644 dbrepo-semantics-service/service_ready diff --git a/dbrepo-analyse-service/Dockerfile b/dbrepo-analyse-service/Dockerfile index d442cb5f68..802686ed74 100644 --- a/dbrepo-analyse-service/Dockerfile +++ b/dbrepo-analyse-service/Dockerfile @@ -1,11 +1,13 @@ FROM python:3.9-alpine MAINTAINER Martin Weise <martin.weise@tuwien.ac.at> -RUN apk update && apk --no-cache add build-base gcc python3-dev libpq-dev libffi-dev py3-pandas \ +RUN apk update && apk --no-cache add build-base gcc python3-dev libpq-dev libffi-dev bash curl py3-pandas \ py3-sqlalchemy py3-requests py3-gevent py3-psycopg2 COPY ./requirements.txt ./requirements.txt -RUN pip install -r ./requirements.txt +COPY ./healthcheck.sh ./healthcheck.sh + +RUN pip install -r requirements.txt > /dev/null WORKDIR /app @@ -15,13 +17,10 @@ ENV PORT_APP=5000 ENV FLASK_ENV=production ENV HOSTNAME=analyse-service -HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD ./service_ready +HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD ["bash", "/app/healthcheck.sh"] COPY ./as-yml/ ./as-yml/ COPY ./*.py ./ -COPY ./service_ready ./ - -RUN chmod +x ./service_ready EXPOSE $PORT_APP diff --git a/dbrepo-analyse-service/healthcheck.sh b/dbrepo-analyse-service/healthcheck.sh new file mode 100644 index 0000000000..01dd083f37 --- /dev/null +++ b/dbrepo-analyse-service/healthcheck.sh @@ -0,0 +1,5 @@ +#!/bin/bash +HTTP_CODE=$(curl --silent --output /dev/stderr --write-out "%{http_code}" 'http://0.0.0.0:5000/metrics') +if test $HTTP_CODE -ne 200; then + exit 1 +fi \ No newline at end of file diff --git a/dbrepo-analyse-service/service_ready b/dbrepo-analyse-service/service_ready deleted file mode 100644 index c08320ed21..0000000000 --- a/dbrepo-analyse-service/service_ready +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/local/bin/python -import socket -sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -result = sock.connect_ex(('127.0.0.1', 5000)) -if result == 0: - print("Port is open") - exit(0) -else: - print("Port is not open") - exit(1) -sock.close() \ No newline at end of file diff --git a/dbrepo-semantics-service/Dockerfile b/dbrepo-semantics-service/Dockerfile index 07f4c1abb1..d676ca3f38 100644 --- a/dbrepo-semantics-service/Dockerfile +++ b/dbrepo-semantics-service/Dockerfile @@ -2,7 +2,7 @@ FROM python:3.9-alpine MAINTAINER Martin Weise <martin.weise@tuwien.ac.at> RUN apk update && apk --no-cache add build-base gcc python3-dev libpq-dev libffi-dev mariadb-dev mariadb-connector-c \ - mariadb-connector-c-dev py3-pandas py3-sqlalchemy py3-requests py3-gevent py3-psycopg2 + mariadb-connector-c-dev curl bash py3-pandas py3-sqlalchemy py3-requests py3-gevent py3-psycopg2 COPY ./requirements.txt ./requirements.txt RUN pip install -r ./requirements.txt @@ -14,7 +14,6 @@ ENV FLASK_RUN_HOST=0.0.0.0 ENV PORT_APP=5010 ENV FLASK_DEBUG=0 ENV HOSTNAME=semantics-service -ENV READY_FILE=/ready ENV LOG_LEVEL=debug ENV METADATA_DB=fda ENV METADATA_USERNAME=root @@ -22,14 +21,12 @@ ENV METADATA_PASSWORD=dbrepo ENV JWT_ISSUER=http://localhost:8080/realms/dbrepo ENV JWT_PUBKEY=public-key -COPY requirements.txt requirements.txt +COPY ./requirements.txt ./requirements.txt +COPY ./healthcheck.sh ./healthcheck.sh RUN pip install -r requirements.txt > /dev/null -COPY ./service_ready /usr/bin -RUN chmod +x /usr/bin/service_ready - -HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD service_ready +HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD ["bash", "/app/healthcheck.sh"] EXPOSE $PORT_APP diff --git a/dbrepo-semantics-service/healthcheck.sh b/dbrepo-semantics-service/healthcheck.sh new file mode 100644 index 0000000000..0854264b62 --- /dev/null +++ b/dbrepo-semantics-service/healthcheck.sh @@ -0,0 +1,5 @@ +#!/bin/bash +HTTP_CODE=$(curl --silent --output /dev/stderr --write-out "%{http_code}" 'http://0.0.0.0:5010/metrics') +if test $HTTP_CODE -ne 200; then + exit 1 +fi \ No newline at end of file diff --git a/dbrepo-semantics-service/pywsgi.py b/dbrepo-semantics-service/pywsgi.py index 73578a6f8b..ed26090cef 100644 --- a/dbrepo-semantics-service/pywsgi.py +++ b/dbrepo-semantics-service/pywsgi.py @@ -10,6 +10,4 @@ path = os.getenv('READY_FILE', './ready') logging.basicConfig(format='%(asctime)s %(levelname)-6s %(message)s', level=logging.DEBUG) http_server = WSGIServer(listener=(rest_server_host, rest_server_port), application=app, log=logging) -with open(path, 'w') as f: - logging.info(f'Service is ready, create file at {path}') http_server.serve_forever() diff --git a/dbrepo-semantics-service/service_ready b/dbrepo-semantics-service/service_ready deleted file mode 100644 index 52b578bd32..0000000000 --- a/dbrepo-semantics-service/service_ready +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -if [ -f "${READY_FILE}" ]; then - echo "service is ready and accepting connections" - exit 0 -fi -exit 1 \ No newline at end of file -- GitLab