Python
Vi går igenom hur vi kan installera Flask och jobba med en server i Python.
Se till att skapa en arbetsmapp lokalt så du inte är i tex roten. Vi kommer kopiera filer med .
vilket tar alla filer i nuvarande mapp.
Även här behöver vi lite struktur innan vi kör igång:
$ touch app.py Dockerfile requirements.txt
#requirements.txt
Vi kan använda filen requirements.txt för att specificera vad vi vill installera i containern. Nu är det bara Flask så den blir väldigt liten:
Flask
#app.py
Vi skapar enklast möjliga Flask-applikation. Servern har en route som returnerar “Hello from Flask!”:
#!/usr/bin/env python3 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello from Flask!' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')
#Dockerfile
Det vi inte sett innan är ENTRYPOINT. Det fungerar likt CMD
, förutom att om vi lägger till kommandon när vi kör $ docker run ...
kommer inte ENTRYPOINT att ignoreras. Vi använder även pip3 för att installera det som behövs. Vi hade säker kunna hitta någon passande image med både Python och Flask installerat, men var är det roliga i det?
FROM debian:stretch-slim RUN apt-get update && \ apt-get install -y python3-pip python3-dev build-essential COPY . /app WORKDIR /app RUN pip3 install -r requirements.txt ENTRYPOINT ["python3"] CMD ["app.py"]
#Bygga och köra
Nu har vi allt på plats för att bygga vår image…
$ docker build -t username/imagename:tag .
…och köra den:
$ docker run --rm -p 5000:5000 username/imagename:tag
Nu kan vi peka webbläsaren mot localhost:5000
.
#Revision history
- 2019-04-12: (A, lew) Första versionen.