Je voulais créer rapidement un environnement et m'en débarrasser à des fins pratiques ou inspirantes. Je l'ai fait pour qu'il puisse être construit en quelques fichiers et quelques secondes.
Je ne fais que les bases, donc si seulement Docker fonctionne, cela devrait être gérable. Mon environnement d'exécution est la bêta publique de Docker pour Mac.
version
$ docker --version
Docker version 1.12.0, build 8eab29e, experimental
Structure du répertoire local
flask/
├ Dockerfile
├ requirements.txt
└ hello.py
Dockerfile
#Spécification de l'image de base
FROM python:3.5.2-alpine
#Stocker le répertoire dans lequel la source est placée en tant que variable
ARG project_dir=/web/hello/
#Copiez les fichiers requis du local vers le conteneur
ADD requirements.txt $project_dir
ADD hello.py $project_dir
# requirements.Installez le package répertorié dans txt
WORKDIR $project_dir
RUN pip install -r requirements.txt
#Installez les packages requis (lorsque vous travaillez à l'intérieur d'un conteneur)
RUN apk update
RUN apk add zsh vim tmux git tig
requirements.txt
$Après avoir exécuté pip install flask$ pip freeze > requirements.SMS
#### **`requirements.txt`**
```txt
click==6.6
Flask==0.11.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.10
Si cela ne vous dérange pas de changer la version du package Il suffit de `` $ pip install flask '' dans le conteneur.
hello.py Emprunté à Official Page.
app.L'argument run a été modifié à des fins de développement.
#### **`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)
Création d'image
$ cd /path/to/flask/
$ docker build -t flask .
Démarrage du conteneur
$ docker run -p 5000:5000 -it flask /bin/sh
Puisque l'hôte et le port sont déjà spécifiés dans `` hello.py '', exécutez uniquement.
Exécution du flacon
$ cd /path/to/hello/
$ python hello.py
Si vous accédez à localhost: 5000 '' depuis votre navigateur, vous verrez
Hello World! '' ``.
Jusqu'à présent, j'utilisais Ansible pour utiliser pleinement pyenv et virtualenv. Je vais quand même le jeter, et je pense que c'est normal de gérer grossièrement la version.
L'installation de Python est laissée à l'image de base Si vous souhaitez développer correctement, vous pouvez lire le Dockerfile ou le créer vous-même.