named pipes doing a disappearing act
I have created images for my software using the podman build command. My application uses named pipes to communicate. So during installation I create the fifo using the mkfifo command. But when I start the container I find all named pipes missing. Every time I start the container, I have to re-create the pipes using mkfifo. I have tried images from fedora, debian, ubuntu, opensuse and the problem is being faced on all. Apart from named pipes, other types of files are getting saved. As a workaround, I run a script using docker-entrypoint to recreate the named pipes. This is not happening if I use docker command to run the image. Even images built by the docker build command, when I use podman to run the image, the named pipes go missing. This is all I did to simulate the issue 1 podman pull someimage 2 podman run --name test -ti imageid bash cd /root mkfifo test 3 podman save test test 4 podman stop test 5 podman run --name test -ti newimageid bash cd /root ls -l # this shows that the file is missing and didn't get saved I have pasted the result of the test using podman and docker here https://termbin.com/7s5u Is there anything special I need to do to have these files seen and accessible? -- Regards Manvendra - http://www.indimail.org GPG Pub Key http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC7CBC760014D250C
On 7/22/21 10:03, Manvendra Bhangui wrote:
I have created images for my software using the podman build command. My application uses named pipes to communicate. So during installation I create the fifo using the mkfifo command. But when I start the container I find all named pipes missing. Every time I start the container, I have to re-create the pipes using mkfifo. I have tried images from fedora, debian, ubuntu, opensuse and the problem is being faced on all. Apart from named pipes, other types of files are getting saved. As a workaround, I run a script using docker-entrypoint to recreate the named pipes.
This is not happening if I use docker command to run the image. Even images built by the docker build command, when I use podman to run the image, the named pipes go missing.
This is all I did to simulate the issue
1 podman pull someimage 2 podman run --name test -ti imageid bash cd /root mkfifo test 3 podman save test test 4 podman stop test 5 podman run --name test -ti newimageid bash cd /root ls -l # this shows that the file is missing and didn't get saved
I have pasted the result of the test using podman and docker here
Is there anything special I need to do to have these files seen and accessible?
-- Regards Manvendra - http://www.indimail.org GPG Pub Key http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC7CBC760014D250C _______________________________________________ Podman mailing list -- podman@lists.podman.io To unsubscribe send an email to podman-leave@lists.podman.io
Built a little script. This works in rootfull and fails in rootless. cat /tmp/test.sh podman rm test1 podman rmi image1 podman run --name test1 fedora mkfifo /root/test podman diff test1 podman commit test1 image1 podman run image1 ls -l /root/test
On 7/22/21 14:07, Daniel Walsh wrote:
On 7/22/21 10:03, Manvendra Bhangui wrote:
I have created images for my software using the podman build command. My application uses named pipes to communicate. So during installation I create the fifo using the mkfifo command. But when I start the container I find all named pipes missing. Every time I start the container, I have to re-create the pipes using mkfifo. I have tried images from fedora, debian, ubuntu, opensuse and the problem is being faced on all. Apart from named pipes, other types of files are getting saved. As a workaround, I run a script using docker-entrypoint to recreate the named pipes.
This is not happening if I use docker command to run the image. Even images built by the docker build command, when I use podman to run the image, the named pipes go missing.
This is all I did to simulate the issue
1 podman pull someimage 2 podman run --name test -ti imageid bash cd /root mkfifo test 3 podman save test test 4 podman stop test 5 podman run --name test -ti newimageid bash cd /root ls -l # this shows that the file is missing and didn't get saved
I have pasted the result of the test using podman and docker here
Is there anything special I need to do to have these files seen and accessible?
-- Regards Manvendra - http://www.indimail.org GPG Pub Key http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC7CBC760014D250C _______________________________________________ Podman mailing list -- podman@lists.podman.io To unsubscribe send an email to podman-leave@lists.podman.io
Built a little script.
This works in rootfull and fails in rootless.
cat /tmp/test.sh
podman rm test1 podman rmi image1 podman run --name test1 fedora mkfifo /root/test podman diff test1 podman commit test1 image1 podman run image1 ls -l /root/test
On 7/22/21 14:07, Daniel Walsh wrote: https://github.com/containers/storage/pull/969
I never realized the problem because I ran the test using a non-privileged id. The warning will help users like me who are new to podman. I now realize that this problem doesn't happen in docker because dockerd runs as root (my guess). I will modify my app to recreate the fifos if missing on startup Thank you.
participants (3)
-
Daniel Walsh -
Manvendra Bhangui -
mbhangui@gmail.com