Parcourir la source

Merge pull request #34 from kouul/master

Add flask sample
Guillaume LOURS il y a 5 ans
Parent
commit
30038951cd
6 fichiers modifiés avec 79 ajouts et 0 suppressions
  1. 1 0
      README.md
  2. 56 0
      flask/README.md
  3. 6 0
      flask/app/Dockerfile
  4. 9 0
      flask/app/app.py
  5. 1 0
      flask/app/requirements.txt
  6. 6 0
      flask/docker-compose.yml

+ 1 - 0
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)

+ 56 - 0
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
+```

+ 6 - 0
flask/app/Dockerfile

@@ -0,0 +1,6 @@
+FROM python:3.7-alpine 
+WORKDIR /app 
+RUN pip3 install -r requirements.txt 
+COPY . /app 
+ENTRYPOINT ["python3"] 
+CMD ["app.py"]

+ 9 - 0
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')

+ 1 - 0
flask/app/requirements.txt

@@ -0,0 +1 @@
+flask

+ 6 - 0
flask/docker-compose.yml

@@ -0,0 +1,6 @@
+version: '3' 
+services: 
+  web: 
+    build: app 
+    ports: 
+      - '5000:5000'