docker-ros2-desktop-vnc: Commit from container error vnc
Hello and thanks for your job !
I have a question : when do you have finish with my container made from your image (tiryoh/ros2-desktop-vnc:humble) how to commit correctly my docker container with vnc ? because i have some issue when i commit and run the new image :
- enable custom user: ubuntu useradd: user ‘ubuntu’ already exists set default password to “ubuntu” source /opt/ros/humble/setup.bash source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash ============================================================================================ NOTE: --security-opt seccomp=unconfined flag is required to launch Ubuntu Jammy based image. See https://github.com/Tiryoh/docker-ros2-desktop-vnc/pull/56 ============================================================================================ 2024-01-25 14:25:19,861 INFO Included extra file “/etc/supervisor/conf.d/supervisord.conf” during parsing 2024-01-25 14:25:19,861 INFO Set uid to user 0 succeeded 2024-01-25 14:25:19,872 INFO RPC interface ‘supervisor’ initialized 2024-01-25 14:25:19,872 CRIT Server ‘unix_http_server’ running without any HTTP authentication checking 2024-01-25 14:25:19,873 INFO supervisord started with pid 37 2024-01-25 14:25:20,877 INFO spawned: ‘novnc’ with pid 38 2024-01-25 14:25:20,880 INFO spawned: ‘vnc’ with pid 39 2024-01-25 14:25:21,104 INFO exited: vnc (exit status 1; not expected) 2024-01-25 14:25:22,286 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2024-01-25 14:25:22,288 INFO spawned: ‘vnc’ with pid 60 2024-01-25 14:25:22,425 INFO exited: vnc (exit status 1; not expected) 2024-01-25 14:25:24,430 INFO spawned: ‘vnc’ with pid 69 2024-01-25 14:25:24,525 INFO exited: vnc (exit status 1; not expected) 2024-01-25 14:25:27,531 INFO spawned: ‘vnc’ with pid 78 2024-01-25 14:25:27,626 INFO exited: vnc (exit status 1; not expected) 2024-01-25 14:25:28,628 INFO gave up: vnc entered FATAL state, too many start retries too quickly
How to reproduce
-
run build docker container of tiryoh/ros2-desktop-vnc:humble-amd64
docker run -p 6080:80 --security-opt seccomp=unconfined --shm-size=512m tiryoh/ros2-desktop-vnc:humble-amd64 -
make some change inside it, stop it (ctrl+c) and commit the container
docker commit 766f3e47cf4b lmontagnon/testimagevnc:v1 -
Relaunch step 1. but with my new image lmontagnon/testimagevnc:v1
docker run -p 6080:80 --security-opt seccomp=unconfined --shm-size=512m lmontagnon/testimagevnc:v1
I’m using ubuntu 22.04 LTS and docker version 25.0.3
Thank you for your help,
lmontagnon
About this issue
- Original URL
- State: closed
- Created 5 months ago
- Comments: 16 (13 by maintainers)
Hi @cardboardcode , @Tiryoh ,
I tried logging out before commit and it seems to work! When I reproduce the same commands (step to reproduce) it works! Can you confirmed that @cardboardcode ?
Thanks for your help,
lmontagnon
Hi @cardboardcode @lmontagnon
Thanks for pointing this out! Sorry for my late responding, I have been away for a while for various reasons. I will check it out.
I’m still checking, but maybe this comment is relevant. https://github.com/Tiryoh/docker-ros2-desktop-vnc/issues/100#issuecomment-1646863650
@Tiryoh @lmontagnon Can confirm that logging out before stopping the docker container and commiting to new docker image resolves this thread issue on my side as well.
Solution ✨
Before stopping to commit docker container to new docker image, log out first.
Tried it. Encountered the same issue as original thread author.
Environment
22.04LTS25.0.4Steps To Reproduce 🔨
1. Download repository:
2. Build
tiryoh/ros2-desktop-vnc:humble-amd64docker image:3. Build docker container:
4. Access the docker VNC and make new changes:
Open your preferred browser and go to http://127.0.0.1:6080/
Within VNC, open up terminal and run the following commands:
5. Commit the new change to a new docker image:
Determined the
<container_id>by runningdocker container ls -a6. Build docker container using new docker image:
Expected Behaviour 🟢
Able to run docker container and access VNC as per normal upon running Step 6. Should be able to see the
NEW_CHANGES.txtfile still present on Desktop.Actual Behaviour 🔴
Encountered the following error upon running Step 6. Unable to access failing VNC docker container.
Remarks
Issue can be easily recreated. Will try and debug once I am free. Updating it here once I do.
@cardboardcode @Tiryoh
Thank you a lot for your help, @Tiryoh I think adding NOTE 2 it’s very important and helpful too !
I have a new issue if you can help me ! https://github.com/Tiryoh/docker-ros2-desktop-vnc/issues/146
Best regards,
lmontagnon
@cardboardcode Thanks a lot for getting back to me with your thoughts. Really appreciate it! 🙏
@Tiryoh Ah I see. Apologies. I didn’t notice it the first time.
I think the
NOTE 2is helpful and important. Do leave it in as well as supplement theREADME.mdas well. ☺️ 👍Hi @cardboardcode @lmontagnon
What do you think of adding the note like the following?
Hi @cardboardcode @lmontagnon
Great! Thank you for your research and thank you for sharing it with us!
Hi @Tiryoh, no worries. Thank you for replying. 😊
Will try logging out before stopping the container and update if this addresses the issue.
@lmontagnon Did a bit of debugging. Still can’t determine the root cause but narrowed down the issue and figured out a dirty workaround.
Update
The cause of issue seems to be specifically due to:
Running the following command in line 350 of
docker-ros2-desktop-vnc/humble/entrypoint.shfile:The program
vncfails when its command is ran in thesupervisord.conffile:Tried having the command run in verbose to give more info about the unexpected error causing
vncprogram to exit with status 1. However, for unknown reasons, it refuses to output in verbose mode so I am currently stuck at this stage of debugging.Dirty Workaround 🩹
While I can’t have
supervisordin the docker container run in verbose mode, I found out that the same failing error does not occur when running the committed docker image manually.You can follow the steps below to manually commit the docker container and run the VNC server based on the new docker image:
Instructions
docker-ros2-desktop-vnc/humble/entrypoint.shfile to the following:entrypoint.sh:You should see
NEW_CHANGES.txtfile is still present.vncprogram within the new docker container:novncprogram within the new docker container:You should be able to access the VNC server now based on the new commited docker image.
Remarks 💬
Still unable to deduce the root cause and have
supervisordrun in verbose mode. @Tiryoh Please advise on this issue. Also thank you for your hard work in this repository.Ah I get it now. Thank you @lmontagnon for clarifying further. Will try and update accordingly since I wish to do the same myself.
Hi @cardboardcode ,
Thank you for your reply ! The build from source and run the container it’s already working for me.
The problem is when I commit the container created once the work is finished inside and I want to relaunch this new image I get this error.
How to reproduce
run build docker container of tiryoh/ros2-desktop-vnc:humble-amd64
docker run -p 6080:80 --security-opt seccomp=unconfined --shm-size=512m tiryoh/ros2-desktop-vnc:humble-amd64make some change inside it, stop it (ctrl+c) and commit the container
docker commit 766f3e47cf4b lmontagnon/testimagevnc:v1Relaunch step 1. but with my new image lmontagnon/testimagevnc:v1
docker run -p 6080:80 --security-opt seccomp=unconfined --shm-size=512m lmontagnon/testimagevnc:v1Can you try this and tell me if you have same issue ? I will add “How to reproduce” on my first comment.