Meine Dockerfile
führt ein Python-Skript, das Lesen in einer Textdatei von meinem lokalen Rechner erfordert.Docker liest Datei vom lokalen System, wenn der Container läuft
Dockerfile
FROM fedeg/python-vim:2
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
COPY file.txt /data/file.txt
CMD ["python", "run.py"]
Im run.py gibt es eine Funktion, die in der Textdatei lautet:
def read_file(filename):
lines = [line.rstrip('\n') for line in open(filename)]
return lines
ich mich gefragt, ob ich dieses Bild zu jemandem weitergeben war anders und sie run it, wird die file.txt bereits im Image gespeichert oder kann docker beim Start des Images nach der Datei file.txt auf dem lokalen Rechner dieser Person suchen?
Was ich will, ist für Docker nach dem Namen file.txt
auf allen Maschinen zu suchen, auf denen das Image läuft, so dass es auf den Inhalt der anderen file.txt statt der file.txt ich von meinem lokalen Rechner bereitgestellt arbeiten kann .
also, wenn jemand anderes das Bild hat, und sie haben eine andere file.txt, die sie ausführen möchten, wie ersetzen sie diese Datei.txt bereits in meinem Bild mit ihren? – jxn
Wenn die Idee ist, dass jemand ihre Datei hinzufügen kann, sollten Sie ein eingehängtes Volume verwenden und nicht die Daten im Bild haben.Sie können weiterhin ein Volume auf dem Container-Volume bereitstellen, und die von Ihnen bereitgestellten Daten werden verwendet. – herm
Ich erinnere mich nur, dass Sie auch [docker cp] (https://docs.docker.com/engine/reference/commandline/cp/) verwenden können, um Dateien zwischen Container und Host zu kopieren. – herm