From 83a24f681f821c85f4f8d7b2bb3349bf7024405a Mon Sep 17 00:00:00 2001 From: kouul Date: Thu, 26 Mar 2020 08:41:17 +0400 Subject: [PATCH 1/2] add flask sample Signed-off-by: kouul --- flask/README.md | 56 ++++++++++++++++++++++++++++++++++++++ flask/app/Dockerfile | 6 ++++ flask/app/app.py | 9 ++++++ flask/app/requirements.txt | 1 + flask/docker-compose.yml | 6 ++++ 5 files changed, 78 insertions(+) create mode 100644 flask/README.md create mode 100644 flask/app/Dockerfile create mode 100644 flask/app/app.py create mode 100644 flask/app/requirements.txt create mode 100644 flask/docker-compose.yml diff --git a/flask/README.md b/flask/README.md new file mode 100644 index 0000000..420129d --- /dev/null +++ b/flask/README.md @@ -0,0 +1,56 @@ +## Compose sample application +### Python/Flask application with Nginx proxy and a Mongo database + +Project structure: +``` +. +├── docker-compose.yaml +├── app +    ├── Dockerfile +    ├── requirements.txt +    └── app.py + +``` + +[_docker-compose.yaml_](docker-compose.yaml) +``` +services: + web: + build: app + ports: + - '5000:5000' +``` + +## Deploy with docker-compose + +``` +$ docker-compose up -d +Creating network "flask_default" with the default driver +Building web +Step 1/6 : FROM python:3.7-alpine +... +... +Status: Downloaded newer image for python:3.7-alpine +Creating flask_web_1 ... done + +``` + +## Expected result + +Listing containers must show two containers running and the port mapping as below: +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +c126411df522 flask_web "python3 app.py" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp flask_web_1 +``` + +After the application starts, navigate to `http://localhost:5000` in your web browser or run: +``` +$ curl localhost:5000 +Hello World! +``` + +Stop and remove the containers +``` +$ docker-compose down +``` diff --git a/flask/app/Dockerfile b/flask/app/Dockerfile new file mode 100644 index 0000000..26008d9 --- /dev/null +++ b/flask/app/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.7-alpine +WORKDIR /app +COPY . /app +RUN pip3 install -r requirements.txt +ENTRYPOINT ["python3"] +CMD ["app.py"] \ No newline at end of file diff --git a/flask/app/app.py b/flask/app/app.py new file mode 100644 index 0000000..e511196 --- /dev/null +++ b/flask/app/app.py @@ -0,0 +1,9 @@ +from flask import Flask +app = Flask(__name__) + +@app.route('/') +def hello(): + return "Hello World!" + +if __name__ == '__main__': + app.run(host='0.0.0.0') diff --git a/flask/app/requirements.txt b/flask/app/requirements.txt new file mode 100644 index 0000000..7e10602 --- /dev/null +++ b/flask/app/requirements.txt @@ -0,0 +1 @@ +flask diff --git a/flask/docker-compose.yml b/flask/docker-compose.yml new file mode 100644 index 0000000..462e978 --- /dev/null +++ b/flask/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + web: + build: app + ports: + - '5000:5000' \ No newline at end of file From 5feddf08546a45f15885a60463faa11aa6cf7a42 Mon Sep 17 00:00:00 2001 From: kouul Date: Thu, 26 Mar 2020 14:23:50 +0400 Subject: [PATCH 2/2] resolved newline changes Signed-off-by: kouul --- README.md | 1 + flask/app/Dockerfile | 4 ++-- flask/docker-compose.yml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5b0bad4..620fa70 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ docker-compose down - [`Angular`](angular) - [`Spark`](sparkjava) - [`VueJS`](vuejs) +- [`Flask`](flask) *Basic setups for different plaforms (not production ready - useful for personal use)* - [`Gitea / PostgreSQL`](gitea-postgres) diff --git a/flask/app/Dockerfile b/flask/app/Dockerfile index 26008d9..6c294c0 100644 --- a/flask/app/Dockerfile +++ b/flask/app/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.7-alpine WORKDIR /app -COPY . /app RUN pip3 install -r requirements.txt +COPY . /app ENTRYPOINT ["python3"] -CMD ["app.py"] \ No newline at end of file +CMD ["app.py"] diff --git a/flask/docker-compose.yml b/flask/docker-compose.yml index 462e978..8d861ab 100644 --- a/flask/docker-compose.yml +++ b/flask/docker-compose.yml @@ -3,4 +3,4 @@ services: web: build: app ports: - - '5000:5000' \ No newline at end of file + - '5000:5000'