From 107522c82cc2257c08a69c161536dc66a2b451c5 Mon Sep 17 00:00:00 2001 From: Domagoj Zecevic Date: Tue, 1 Nov 2022 22:31:23 +0100 Subject: [PATCH] first commit --- .gitignore | 2 ++ 001_build_prod.sh | 6 ++++++ 001_run_prod.sh | 6 ++++++ 002_build_dev.sh | 5 +++++ 002_run_dev.sh | 5 +++++ Dockerfile | 23 +++++++++++++++++++++++ Dockerfile.dev | 23 +++++++++++++++++++++++ docker-entrypoint-dev.sh | 3 +++ ping_engine.py | 35 +++++++++++++++++++++++++++++++++++ requirements.txt | 2 ++ 10 files changed, 110 insertions(+) create mode 100644 .gitignore create mode 100644 001_build_prod.sh create mode 100644 001_run_prod.sh create mode 100644 002_build_dev.sh create mode 100644 002_run_dev.sh create mode 100644 Dockerfile create mode 100644 Dockerfile.dev create mode 100644 docker-entrypoint-dev.sh create mode 100644 ping_engine.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b664ab4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pyc +venv/ \ No newline at end of file diff --git a/001_build_prod.sh b/001_build_prod.sh new file mode 100644 index 0000000..76a33e9 --- /dev/null +++ b/001_build_prod.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +echo "Type docker tag (version)" +read DOCKER_TAG + +docker build -t pingmachine/ping_engine:$DOCKER_TAG -f Dockerfile . \ No newline at end of file diff --git a/001_run_prod.sh b/001_run_prod.sh new file mode 100644 index 0000000..b91c819 --- /dev/null +++ b/001_run_prod.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +echo "Type docker tag (version)" +read DOCKER_TAG + +docker run -p 5000:5000 pingmachine/ping_engine:$DOCKER_TAG \ No newline at end of file diff --git a/002_build_dev.sh b/002_build_dev.sh new file mode 100644 index 0000000..9f7f43b --- /dev/null +++ b/002_build_dev.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +DOCKER_TAG="dev" + +docker build -t pingmachine/ping_engine:$DOCKER_TAG -f Dockerfile.dev . \ No newline at end of file diff --git a/002_run_dev.sh b/002_run_dev.sh new file mode 100644 index 0000000..00b5ec3 --- /dev/null +++ b/002_run_dev.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +DOCKER_TAG="dev" + +docker run -p 5000:5000 -v $(pwd):/opt/ping_engine pingmachine/ping_engine:$DOCKER_TAG \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a45ea1c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM python:3.9.15-alpine3.16 + +RUN apk update \ + && apk upgrade \ + && apk add --virtual build-deps gcc python3-dev musl-dev + +RUN python3 -m ensurepip && pip3 install --upgrade pip setuptools wheel + +WORKDIR /opt/ping_engine + +COPY ./requirements.txt /tmp/ + +COPY ping_engine.py /opt/ping_engine + +RUN pip3 install -r /tmp/requirements.txt + +RUN apk del build-deps + +EXPOSE 5000 + +ENV PYTHONUNBUFFERED 1 + +CMD flask --app ping_engine run --host=0.0.0.0 \ No newline at end of file diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 0000000..d0f2e87 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,23 @@ +FROM python:3.9.15-alpine3.16 + +RUN apk update \ + && apk upgrade \ + && apk add --virtual build-deps gcc python3-dev musl-dev + +RUN python3 -m ensurepip && pip3 install --upgrade pip setuptools wheel + +WORKDIR /opt/ping_engine + +COPY ./requirements.txt /tmp/ + +# COPY ping_engine.py /opt/ping_engine + +RUN pip3 install -r /tmp/requirements.txt + +RUN apk del build-deps + +EXPOSE 5000 + +ENV PYTHONUNBUFFERED 1 + +CMD flask --app ping_engine --debug run --host=0.0.0.0 \ No newline at end of file diff --git a/docker-entrypoint-dev.sh b/docker-entrypoint-dev.sh new file mode 100644 index 0000000..67cca67 --- /dev/null +++ b/docker-entrypoint-dev.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +flask --app ping_engine --debug run --host=0.0.0.0 \ No newline at end of file diff --git a/ping_engine.py b/ping_engine.py new file mode 100644 index 0000000..be5738d --- /dev/null +++ b/ping_engine.py @@ -0,0 +1,35 @@ +from glob import escape +from flask import Flask,request,json +from markupsafe import escape + +import os +import requests + +app = Flask(__name__) + +from flask import Flask +app = Flask(__name__) + +@app.route('/') +def hello(): + greet = '

You should not be here!

' + link = '

Click me!

' + return greet + link + +@app.route('/ping/') +def ping(name): + personal = f'pinging, {name}' + + response = os.system("ping -c 1 " + name) + if response == 0: + instruc = ' is up!' + address = 'http://%s' %name + r = requests.get(address) + status = r.status_code + status_string = str(status) + else: + instruc = ' is down!' + return personal + instruc + status_string + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c7787f9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +Flask==2.2.2 +requests==2.25.1