Bash docker-compose.yml -> docker run Aufruf

n/a

Newbie
Registriert
Feb. 2025
Beiträge
4
Hallo,

ich suche hierzu (docker-compose.yml) den äquivalenten docker run-Aufruf:

Code:
services:
  build-mds:
    image: pandoc/extra:latest-ubuntu
    container_name: build-mds
    user: ${MY_UID}:${MY_GID}
    restart: no
    volumes:
      - ./data/:/data/
    entrypoint: ["/bin/sh", "-c", "/data/build_mds.sh /data/mds/ /data/pdfs/"]

docker run --rm --name build-mds --volume $(pwd):/data/ --user $(id -u):$(id -g) pandoc/extra:latest-ubuntu /data/build_mds.sh /data/mds/ /data/pdfs/ funktioniert leider nicht.

Ich denke, der Entrypoint des Images muss überschrieben werden.
 
Ich nach das gerne mit Chatgpt bzw. Copilot.

Funktioniert das:
Code:
docker run --name build-mds --user ${MY_UID}:${MY_GID} --restart no -v $(pwd)/data/:/data/ pandoc/extra:latest-ubuntu /bin/sh -c "/data/build_mds.sh /data/mds/ /data/pdfs/"
 
Also die PowerShell sagt mir Folgendes:

Code:
docker run --entrypoint "/data/build_mds.sh /data/mds/ /data/pdfs/" --rm --name build-mds --volume ${pwd}:/data/ pandoc/extra:latest-ubuntu

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/data/build_mds.sh /data/mds/ /data/pdfs/": stat /data/build_mds.sh /data/mds/ /data/pdfs/: no such file or directory: unknown.
Ergänzung ()

A, jetzt hat's geklappt. :)

docker run --entrypoint /data/build_mds.sh --rm --name build-mds --volume ${pwd}:/data/ pandoc/extra:latest-ubuntu /data/mds/ /data/pdfs/
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: KillerCow
Nur mal so ganz doof gefragt: Warum lässt du einen Teil des "entrypoint" aus dem Composefile weg und hoffst dann, dass es trotzdem funktioniert 🤔 ;)

Soweit ich das noch im Kopf habe, ersetzen die Paramter nach dem Imagenamen nur den "CMD" Teil, aber nicht den im Image definierten Entrypoint. Um das zu erreichen, müsstest du vermutlich mit "--entrypoint" arbeiten.
Kann aber auch sein, dass das Image so gebaut ist, dass es bei übergebenen Parametern schlicht diese komplett als Entrypoint benutzt. Ich glaube, so sind die meisten Images in der heutigen Zeit gebaut. Damit sollte die Lösung von @Nebuk funktionieren... theoretisch ;)
 
Jo, der "Standard"entrypoint vom Pandoc-Image enthält einen "pandoc"-Aufruf, den ich gerne überschreiben möchte, weil ich "pandoc" im Container öfter aufrufen muss.

Chatgpt wie von Nebuk angemerkt hat mir da leider nicht geholfen.
 
Zuletzt bearbeitet:
Siehe @n/a , du musst offenbar den entrypoint überschreiben, mit "--entrypoint".
 
  • Gefällt mir
Reaktionen: n/a
Zurück
Oben