Hallo zusammen, folgendes soll realisiert werden: 1) Erstellen eines Dockerimages 2) Kopieren einer Datei aus dem Image auf den Host 3) Manipulieren der Datei auf dem Host 4) Zurückkopieren der Datei in das Image Die Punkte 1 bis 3 sind erledigt. Bei 4 wäre mein erster Ansatz, das Image aus 1 als Base Image zu nehmen und die manipulierte Datei mittels eines eigenen Dockerfiles zu kopieren. Problem: Der Name des Base Images wird durch den Anwender bestimmt. Ist es möglich das Base Image als Paramter beim Aufruf von "docker build" zu übergeben? Irgendwelche anderen Ideen? Viele Grüße
für mich klingt das so als willst du, für die einmalige Verwendung ne Datei austauschen. Das kannst du mit mapping erledigen, dafür musst du kein image bauen. ... und die Antwort auf deine eigentliche frage: nein, da könntest du nur, ggf. das Dockerfile umschreiben. Darf ich nach dem Anwendungsfall fragen? das klingt erstmal merkwürdig...
Dennis S. schrieb: > Zurückkopieren der Datei in das Image Dafür gab es einen Image-Editor. Der kluge Mann würde natürlich nie im Original herumfummeln, sonderen eine Kopie bearbeiten.
oszi40 schrieb: > Dennis S. schrieb: >> Zurückkopieren der Datei in das Image > > Dafür gab es einen Image-Editor. Der kluge Mann würde natürlich nie im > Original herumfummeln, sonderen eine Kopie bearbeiten. Du weißt aber schon, was ein Docker-Image ist, oder?
Dennis S. schrieb: > folgendes soll realisiert werden: > 1) Erstellen eines Dockerimages > 2) Kopieren einer Datei aus dem Image auf den Host > 3) Manipulieren der Datei auf dem Host > 4) Zurückkopieren der Datei in das Image Bitte entschuldige meine Offenheit, aber das hört sich für mich nach einem kaputten Konzept an. Die Idee ist vielmehr, daß Images unveränderbar sein, und bei Änderungen neu gebaut werden sollten. Man kann so etwas mit Containern machen, mit "docker cp" -- aber sonderlich elegant ist das leider auch nicht. > Die Punkte 1 bis 3 sind erledigt. Huch, wie das? > Bei 4 wäre mein erster Ansatz, das > Image aus 1 als Base Image zu nehmen und die manipulierte Datei mittels > eines eigenen Dockerfiles zu kopieren. Wie gesagt, das hört sich nach einem kaputten Konzept an. Wenn der User eh das Image bauen muß, kann mit den Befehlen "COPY" und "ADD" im Dockerfile eine (manipulierte) Datei in das Image übertragen werden. Kannst Du uns vielleicht genauer erklären, was genau Du erreichen willst, bzw. was Dein besonderer Anwendungsfall ist? > Problem: Der Name des Base Images wird durch den Anwender bestimmt. Ist > es möglich das Base Image als Paramter beim Aufruf von "docker build" zu > übergeben? Irgendwelche anderen Ideen? docker help build /-t
Dirk D. schrieb: > Das kannst du mit mapping erledigen, dafür musst du kein image bauen. Kannst du das genauer erläutern? Sheeva P. schrieb: > Bitte entschuldige meine Offenheit, aber das hört sich für mich nach > einem kaputten Konzept an. Die Idee ist vielmehr, daß Images > unveränderbar sein, und bei Änderungen neu gebaut werden sollten. Um es klarer zu formulieren: zur Zeit ist es so, dass ich das Docker Image "UNmodified" baue, die Datei herauskopiere und manipuliere und anschließend das Image "modified" mit Base Image "UNmodified" baue in das die manipulierte Datei reinkopiert wird. Sheeva P. schrieb: > Huch, wie das? 1) docker build -t <tag> . 2) docker run --rm --entrypoint cat <tag> /programm > programm 3) foo.exe programm Sheeva P. schrieb: > docker help build /-t Das bestimmt den Namen des Tags. Wie soll mir das helfen? Der Punkt ist ja, dass in Dockerfile.modified das Base Image angegeben werden muss, welches beim Bauen von Dockerfile.unmodified vom User angegeben wurde. Gruß Dennis
Dennis S. schrieb: > Dirk D. schrieb: >> Das kannst du mit mapping erledigen, dafür musst du kein image bauen. > > Kannst du das genauer erläutern? Klar > Sheeva P. schrieb: >> Huch, wie das? > > 1) docker build -t <tag> . > 2) docker run --rm --entrypoint cat <tag> /programm > programm > 3) foo.exe programm 4) docker run -v ./programm:/programm (und deine üblichen optionen)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.