Ich wollte schnell eine Umgebung schaffen und sie für praktische oder inspirierende Zwecke entsorgen. Ich habe es so gemacht, dass es in ein paar Dateien und ein paar Sekunden erstellt werden kann.
Ich mache nur die Grundlagen. Wenn also nur Docker funktioniert, sollte es handhabbar sein. Meine Ausführungsumgebung ist Public Beta von Docker für Mac.
Ausführung
$ docker --version
Docker version 1.12.0, build 8eab29e, experimental
Lokale Verzeichnisstruktur
flask/
├ Dockerfile
├ requirements.txt
└ hello.py
Dockerfile
#Angeben des Basisbildes
FROM python:3.5.2-alpine
#Speichern Sie das Verzeichnis, in dem sich die Quelle befindet, als Variable
ARG project_dir=/web/hello/
#Kopieren Sie die erforderlichen Dateien von lokal in den Container
ADD requirements.txt $project_dir
ADD hello.py $project_dir
# requirements.Installieren Sie das in txt aufgeführte Paket
WORKDIR $project_dir
RUN pip install -r requirements.txt
#Installieren Sie die erforderlichen Pakete (wenn Sie in einem Container arbeiten)
RUN apk update
RUN apk add zsh vim tmux git tig
requirements.txt
$Nach dem Ausführen des Rohrs den Kolben einbauen$ pip freeze > requirements.TXT
#### **`requirements.txt`**
```txt
click==6.6
Flask==0.11.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.10
Wenn es Ihnen nichts ausmacht, die Paketversion zu ändern Einfach `` `$ pip install flask``` im Behälter ist vollkommen in Ordnung.
hello.py Ausgeliehen von Offizielle Seite.
app.Das Argument run wurde zu Entwicklungszwecken geändert.
#### **`hello.py`**
```py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Hello World!"
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000, debug=True)
Bilderzeugung
$ cd /path/to/flask/
$ docker build -t flask .
Container-Start
$ docker run -p 5000:5000 -it flask /bin/sh
Da Host und Port bereits in `` `hello.py``` angegeben sind, nur ausführen.
Flaschenausführung
$ cd /path/to/hello/
$ python hello.py
Wenn Sie über Ihren Browser auf `localhost: 5000``` zugreifen, wird`
Hello World! `` `Angezeigt.
Bisher habe ich Ansible verwendet, um pyenv und virtualenv voll auszunutzen. Ich werde es trotzdem wegwerfen und ich denke, es ist in Ordnung, die Version grob zu verwalten.
Die Python-Installation bleibt dem Basis-Image überlassen Wenn Sie sich richtig entwickeln möchten, können Sie die Docker-Datei lesen oder selbst erstellen.