Üdv,
Fc37-ben egy Dockerfile-ben megadtam:
VOLUME /app
Build megvan, futtatás:
podman run -it -p 8000:8000 --name myapp --hostname myapp fedora:myapp -v $(pwd)/app:/app
# vagy
podman run -it -p 8000:8000 --name myapp --hostname myapp fedora:myapp --mount='type=bind,source=$(pwd)/app,destination=/app'
A $(pwd)/app nem mountolódik fel a konténer /app könyvtárába. Üres marad. Mit rontok el? Mi lenne a helyes megoldás? https://docs.podman.io/en/latest/markdown/options/mount.html
- 224 megtekintés
Hozzászólások
Próbáld meg a teljes path-szel is (csak tipp, nem értek hozzá).
- A hozzászóláshoz be kell jelentkezni
Próbáltam, u.a.
- A hozzászóláshoz be kell jelentkezni
Ok, a nyitóban nem szerepelt. Akkor esetleg ekképpen: https://docs.podman.io/en/latest/markdown/podman-volume-mount.1.html ?
- A hozzászóláshoz be kell jelentkezni
Nem jó azzal sem.
# podman run [OPTIONS]
...
--volume, -v=[[SOURCE-VOLUME|HOST-DIR:]CONTAINER-DIR[:OPTIONS]]
Create a bind mount. If -v /HOST-DIR:/CONTAINER-DIR is specified,
Podman bind mounts /HOST-DIR from the host into /CONTAINER-DIR in the Podman container.
Similarly, -v SOURCE-VOLUME:/CONTAINER-DIR will mount the named volume from the host into the container.
If no such named volume exists, Podman will create one. If no source is given, the volume will be created as an anonymously named volume with a randomly generated name, and will be removed when the container is removed via the --rm flag or the podman rm --volumes command.
Létrehoz egy saját volume-t a /app-nak és a forrás útvonalat nem veszi figyelembe. Miért? Nem egészen értem.
- A hozzászóláshoz be kell jelentkezni
Nekem ugyan 4.3.1 el működni látszik, de néhány ötlet
- Egyáltalán minek neked a dockerfileba a VOLUME, ha úgyis hostdirt akarsz csatolni?
- Ha mégis kell, mert mondjuk ott van, akkor nem segít egy --image-volume=ignore ? Lehet, hogy valami sorrendiségi baj van.
- Jogosultságok jók, selinux, apparmor nem fogja? Bár akkor elvileg nyüsszögni kéne neki, hogy nem jó a dir
- A pwds izére egyébként a podmannak a doksi alapján nincs szüksége (viszont relative dirhez kell neki ./ az elejére, különben volumenak nézi)
- A hozzászóláshoz be kell jelentkezni
SELinux kikapcs.
A lényeg, hogy egy saját útvonalat állít be: .local/share/containers/volumes/31231....1231231/_data
A $(pwd) egy abszolút útvonalat ad vissza, pl.: /home/user/proj/app
Még próbálkozom...
- A hozzászóláshoz be kell jelentkezni
Értem én, első kettő?
- A hozzászóláshoz be kell jelentkezni
SELinux beállít, nem kikapcsol. Azaz fogod, és megnézed, hogy min akad el, mi az esetleges hasfájása, és helyrerakod, ami gondja van.
Kezded azzal, hogy:
chcon -R system_u:object_container_r:file_t:s0 /a/podman/konténer/alá/felcsatolt/könyvtár/
Utána az auditd-nek kell adni egy USR1 szignált, hogy kirotálja a az audit logot, majd jöhet a konténer indítása, és utána egy audit2why < /var/log/audit/audit.log és annak a kimenetét átnézni, illetve egy audit2allow < /var/log6audit/audit.log kimenetet átgondolni, hogy amit ott javasol, az jó-e, kell-e, vagy néminemű cimkézés kell még.
Ja, a chcon az egyszeri, célszerű a konténerek alá felhúzott könyvtárakat mintaillesztéssel jól lefedhető útvonalakon tartani, és semanage fcontext... satöbbi parancsot használva "ráhúzni" az ilyen útvonalakra a fenti kontextet, hogyha új könyvtár/fájl jön adott útvonalon létre, az is ezt a label-t kapja, valahogy így:
semanage fcontext -a -t container_file_t "/home/(.*/)?kontenerek/alatt(/.*)?"
Utána csak restorecon kell a könyvtárra.
- A hozzászóláshoz be kell jelentkezni
nemide
- A hozzászóláshoz be kell jelentkezni
Nem rossz helyen van neked az a `-v`?
⛵ vnagy-eu in /tmp/foobar on ☁️ eu-west-1
❯ cat Dockerfile
FROM fedora:latest
VOLUME /app
⛵ vnagy-eu in /tmp/foobar on ☁️ eu-west-1
❯ ls app/
readme.md
⛵ vnagy-eu in /tmp/foobar on ☁️ eu-west-1
❯ podman build -f Dockerfile -t fedora:myapp .
STEP 1/2: FROM fedora:latest
STEP 2/2: VOLUME /app
--> Using cache 48e279e17eeba96f6204eb4ce86e8285190bc3ec5f3cf36d2ef917265c383ed8
COMMIT fedora:myapp
--> 48e279e17ee
Successfully tagged localhost/fedora:myapp
48e279e17eeba96f6204eb4ce86e8285190bc3ec5f3cf36d2ef917265c383ed8
⛵ vnagy-eu in /tmp/foobar on ☁️ eu-west-1
❯ podman run --rm -it -p 8000:8000 --name myapp --hostname myapp fedora:myapp -v $(pwd)/app:/app
Error: crun: executable file `-v` not found in $PATH: No such file or directory: OCI runtime attempted to invoke a command that was not found
⛵ vnagy-eu in /tmp/foobar on ☁️ eu-west-1
❯ podman run --rm -it -p 8000:8000 --name myapp --hostname myapp -v $(pwd)/app:/app:Z fedora:myapp
[root@myapp /]# ls /app/
readme.md
[root@myapp /]# exit
exit
- A hozzászóláshoz be kell jelentkezni
Nem rossz helyen van neked az a `-v`?
Ah, good catch
- A hozzászóláshoz be kell jelentkezni
Köszönöm!
podman run --rm -it -p 8000:8000 --name myapp --hostname myapp -v $(pwd)/app:/app fedora:myapp
podman run --rm -it -p 8000:8000 --name myapp --hostname myapp -v $(pwd)/app:/app:Z fedora:myapp
- A hozzászóláshoz be kell jelentkezni
nm
- A hozzászóláshoz be kell jelentkezni