Sobald ich einen Container wollte, der die Version von Python angeben kann. (Hauptsächlich wegen icrawler) Ich habe mich für Docker-Compose entschieden, weil es einfach wegzuwerfen ist, wenn ich es in einem Container mache und es einfach ist, Ports zu verwalten.
Erstellen Sie Dateien und Ordner.
$ mkdir python
$ cd python
$ touch Dockerfile
$ touch docker-compose.yml
$ touch requirements.txt //Notieren Sie sich das Paket, das Sie einfügen möchten
$ mkdir workspace
Wenn es eine Möglichkeit gibt, die Berechtigung als Root festzulegen, wenn das Volume im Container ausgeführt wird, lassen Sie es mich bitte wissen.
Dockerfile
FROM python:3.6
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
ARG DOCKER_UID=1000
ARG DOCKER_USER=docker-user
RUN useradd -m --uid ${DOCKER_UID} --groups sudo ${DOCKER_USER}
USER ${DOCKER_USER}
WORKDIR /home/docker-user
docker-compose.yml
version: "3"
services:
python36:
build: .
container_name: python36
ports:
- "5000:5000"
tty: true
volumes:
- ./workspace:/home/docker-user
Die Vorbereitung ist abgeschlossen.
Baue einen Container. Dann einfach eintreten.
$ docker-compose build
$ docker-compose up -d
#Wie man eintritt
$ docker-compose exec python36 bash
#Bei Eingabe als root
$ docker-compose exec --user=root python36 bash
Als Verpflichtung betreibe ich es nicht als root. Beachten Sie nur, dass ich nichts sagen kann, weil ich nicht weiß, wie ich es schreiben soll.
Docker hub Massenpaketinstallation mit require.txt mit Python, pip
Recommended Posts