"Erstellen eines Dienstes, der den Nutzungsverlauf von Suica für Mobilgeräte so bearbeitet, dass er problemlos zur Kostenabrechnung verwendet werden kann" Zunächst werden wir in Python entwickeln, also erstellen Sie eine Umgebung, in der Python ausgeführt werden kann
windows PC (Core i7-7600 / 16GB) Bearbeiten mit VS-Code Es ist praktisch, Python- und Docker-Erweiterungen einzuschließen
Da es auf einem Windows-PC entwickelt wurde, ist es schwierig, es direkt zu tun. Die Python-Ausführungsumgebung richtet einen Container mit Docker ein
Installieren Sie ** Docker für Windows ** Es ist erforderlich, Hyper-V zu aktivieren. Installieren Sie auch [** docker-compose **] * [Docker] Installieren Sie Docker und Docker Compose unter Windows 10 Pro 64bit
Ich werde verschiedene Dinge installieren, also baue das Image Speichern Sie die folgende Datei als Docker-Datei in einem geeigneten Verzeichnis
Dockerfile
FROM centos/python-36-centos7:latest
USER root
RUN yum -y install java-1.8.0-openjdk
RUN pip install flask pandas tabula-py uwsgi
WORKDIR /src
ENV PYTHONUNBUFFERED=1
Da Sie die Python-Datei unter Windows bearbeiten und unter Docker ausführen, müssen Sie die Python-Datei unter Windows im Container anzeigen können. Dies kann beim Starten des Containers mit "-v" angegeben werden. Da Windows jedoch Probleme bereitet und ich den Befehl nicht jedes Mal eingeben möchte, vereinheitlichen Sie die Befehle mit docker-compose
docker-compose.yml
version: '3.7'
services:
testenv:
build:
context: ./app
dockerfile: Dockerfile
container_name: testenv
tty: true
command: /bin/sh -c "while :; do sleep 10; done"
volumes:
- ./app/src:/src
volumes:
temp:
Wenn es keinen Befehl gibt: Teil, wird der Container sofort gelöscht Wenn ich google, lösen die meisten Leute es mit tty: true, aber aus irgendeinem Grund ist es in meiner Umgebung nutzlos
Platzieren Sie die Docker-Datei und die Datei docker-compose.yml wie folgt test.py ist eine auszuführende Python-Datei
│ docker-compose.yml
│
└─app
│ Dockerfile
│
└─src
test.py
$ docker-compose.exe up --build -d
Creating network "test_default" with the default driver
Building testenv
Step 1/6 : FROM centos/python-36-centos7:latest
---> 90c6a4022ee5
Step 2/6 : USER root
---> Using cache
---> 03e9f59a6dbc
Step 3/6 : RUN yum -y install java-1.8.0-openjdk
---> Using cache
---> 463337c7b050
Step 4/6 : RUN pip install flask pandas tabula-py PyPDF2 uwsgi crontab
---> Using cache
---> 26c28d2b838c
Step 5/6 : WORKDIR /src
---> Running in f5ab2a9b405e
Removing intermediate container f5ab2a9b405e
---> b998a42b8180
Step 6/6 : ENV PYTHONUNBUFFERED=1
---> Running in fd8d783f9e2f
Removing intermediate container fd8d783f9e2f
---> e1e0833bc33a
Successfully built e1e0833bc33a
Successfully tagged test_testenv:latest
Sehen Sie, ob Sie aufgestanden sind
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b7e97ef1fd5 test_testenv "container-entrypoin…" 4 seconds ago Up 2 seconds 8080/tcp testenv
Versuchen Sie, den Container zu betreten
$ winpty docker exec -it testenv bash
(app-root) bash-4.2# pwd
/src
(app-root) bash-4.2# ls
test.py
(app-root) bash-4.2# cat test.py
print('Hello, World')
(app-root) bash-4.2# python3 test.py
Hello, World
Jetzt können Sie endlich mit dem Schreiben Ihres Codes beginnen.