diff --git a/dbrepo-analyse-service/Dockerfile b/dbrepo-analyse-service/Dockerfile index d442cb5f68d657019daaee79a77b1fc7cd6f433c..802686ed74e8a86e7e7395b7f496a0a0374e45e6 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 0000000000000000000000000000000000000000..01dd083f370ea41ff6bb73c626eb4fc089b76ad1 --- /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 c08320ed21abefccb54ec637d0c517b1d0e42559..0000000000000000000000000000000000000000 --- 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 07f4c1abb1cd90e2bc34da67d8f80ca5a33d5eb4..d676ca3f38d2e9dd55da8b2ae2af33dee7cd5afa 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 0000000000000000000000000000000000000000..0854264b627e9d8ef06b338ff4931c00893f3dfc --- /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 73578a6f8b4ad1bbbfe0f01e3cc9ca9c14797680..ed26090cef50e4c1255af334bd40e0c4fc57f4fa 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 52b578bd3275133b2d4913c327faf1e9a2f98ef1..0000000000000000000000000000000000000000 --- 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