Closed patrick-5546 closed 3 months ago
Just checking in, I can get to this today or tomorrow most likely
Ran sudo ./setup.sh
and then tried to run sudo ./build.sh
and got this error
[0.257s] WARNING:colcon.colcon_core.package_discovery:ignoring unknown package 'virtual_iridium' in --packages-ignore
Summary: 0 packages finished [0.17s]
Any thoughts?
test.sh
failed right away and asked if the packages had been built yet.
Also:
ros@63d48b306fe4:/workspaces/sailbot_workspace$ echo $ROS_DISTRO
humble
but now when I run sudo ./scripts/setup.sh
I get
rosdep: error: --rosdistro option requires 1 argument
Run the scripts without sudo
. Sudo runs scripts as the root
user instead of the ros
user
Ah okay. I tried sudo since I was getting permission denied for everything. Maybe I need to run chmod?
What is the output of ls -l
when you are inside the container? I'm suspecting that you're encountering the same error as the CI did, but for some reason it does not happen on my machine.
If that's the case, running ./scripts/run-tests.sh
should work because it starts by changing the permissions of all the files to the ros
user. I also specified the ros user in the docker compose file, but since it didn't work for CI I don't think it will make a difference for you
Also I see you checked off the second point, that means you were able to get to the point that the global launch file was running when not running interactively?
This is the output before trying anything else
My mistake, no the global launch file does not run, same permission denied problem. will try ./scripts/run-test.sh and if that doesnt work I'll try pulling your change and try again.
If the permissions of the files are transferred to the ros
user then don't the commands to execute the bash scripts have to be entered inside the workspace container?
Try running this in WSL/Ubuntu
./scripts/deployment/start_containers.sh --website --interactive
Then in prompt (inside the sailbot workspace container) run
`./scripts/run-tests.sh
I am also surprised that running it without the interactive flag doesn't work. If the above commands don't work then we should hop on a call to debug it faster
Try running this in WSL/Ubuntu
./scripts/deployment/start_containers.sh --website --interactive
Then in prompt (inside the sailbot workspace container) run
`./scripts/run-tests.sh
I am also surprised that running it without the interactive flag doesn't work. If the above commands don't work then we should hop on a call to debug it faster
Okay so both of these do work, running from WSL
Running without interactive flag, from WSL, works. Navigate and Local Transceiver nodes fail.
./scripts/deployment/start_containers.sh --website
fails without internet connection.
Navigate and Local Transceiver nodes fail
Do these fail when launching the global launch file in sailbot workspace? If so, not a problem with this workflow.
./scripts/deployment/start_containers.sh --website fails without internet connection
Did you run once with internet before? And do you have wget installed?
Do these fail when launching the global launch file in sailbot workspace? If so, not a problem with this workflow.
Yes they do, so no worries there.
Did you run once with internet before? And do you have wget installed?
Yup
I tried changing --pull never
to pull missing
and also removing pull
altogether.
I'm guessing its default behavior for docker to make a request for image metadata despite the image already being locally cached.
I found a work around here but its not ideal and it involves changing the Dockerfile.
It seems like this is an issue with buildkit. I tried disabling it and running again but then rosdep complains about not being connected to the internet further down the line, but the containers start at least.
sean@LAPTOP-J5KA2EOT:~/test-workspace/sailbot_workspace$ ./scripts/deployment/start_containers.sh --website
Sending build context to Docker daemon 8.467kB
Step 1/7 : FROM ghcr.io/ubcsailbot/sailbot_workspace/dev:moved-network-deps
---> 9deff1065b14
Step 2/7 : ARG USERNAME=ros
---> Running in 87a3338ec5de
Removing intermediate container 87a3338ec5de
---> 2fe928e3a87e
Step 3/7 : ARG HOME=/home/${USERNAME}
---> Running in ceec618eb6cd
Removing intermediate container ceec618eb6cd
---> 4050b4978bf2
Step 4/7 : COPY --chown=${USERNAME}:${USERNAME} config ${HOME}
---> 2133c28bf621
Step 5/7 : USER ${USERNAME}
---> Running in e187e7c4355d
Removing intermediate container e187e7c4355d
---> 11e104c89109
Step 6/7 : WORKDIR ${ROS_WORKSPACE}
---> Running in 8449a07c8569
Removing intermediate container 8449a07c8569
---> 146d84716f8d
Step 7/7 : LABEL com.docker.compose.image.builder=classic
---> Running in 0fe5c17606c1
Removing intermediate container 0fe5c17606c1
---> af8c127c3aad
Successfully built af8c127c3aad
Successfully tagged deployment-sailbot-workspace:latest
Sending build context to Docker daemon 99.27MB
Step 1/5 : FROM node:20-alpine
---> 91247b4bc29d
Step 2/5 : WORKDIR /website
---> Running in 65e228180748
Removing intermediate container 65e228180748
---> 211a69817ca1
Step 3/5 : EXPOSE 3005
---> Running in 1c638c8bdb09
Removing intermediate container 1c638c8bdb09
---> c79fb303a694
Step 4/5 : CMD npm install && npm run build && npm run start
---> Running in 2fdc366a512a
Removing intermediate container 2fdc366a512a
---> 0cc9817e894f
Step 5/5 : LABEL com.docker.compose.image.builder=classic
---> Running in 2add8cdf3acd
Removing intermediate container 2add8cdf3acd
---> dab9689c4ce1
Successfully built dab9689c4ce1
Successfully tagged deployment-website:latest
[+] Running 3/3
✔ Container deployment-sailbot-workspace-1 Started 1.1s
✔ Container deployment-website-1 Started 0.3s
✔ Container deployment-mongodb-1 Started 0.3s
Adding /workspaces/sailbot_workspace/src/integration_tests/custom-rosdep.yaml to /etc/ros/rosdep/sources.list.d/20-sailbot.list
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://packages.ros.org/ros2/ubuntu jammy InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:6 http://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://packages.ros.org/ros2/ubuntu jammy InRelease
Ign:6 http://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://packages.ros.org/ros2/ubuntu jammy InRelease
Ign:6 http://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 InRelease
Err:3 http://archive.ubuntu.com/ubuntu jammy InRelease
Could not resolve 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Could not resolve 'archive.ubuntu.com'
Err:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Could not resolve 'archive.ubuntu.com'
Err:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Could not resolve 'security.ubuntu.com'
Err:6 http://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 InRelease
Could not resolve 'repo.mongodb.org'
Err:2 http://packages.ros.org/ros2/ubuntu jammy InRelease
Could not resolve 'packages.ros.org'
Reading package lists...
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease Could not resolve 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease Could not resolve 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease Could not resolve 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease Could not resolve 'security.ubuntu.com'
W: Failed to fetch http://repo.mongodb.org/apt/ubuntu/dists/jammy/mongodb-org/6.0/InRelease Could not resolve 'repo.mongodb.org'
W: Failed to fetch http://packages.ros.org/ros2/ubuntu/dists/jammy/InRelease Could not resolve 'packages.ros.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
ERROR: your rosdep installation has not been initialized yet. Please run:
rosdep update
[+] Stopping 3/3
✔ Container deployment-mongodb-1 Stopped 0.1s
✔ Container deployment-website-1 Stopped 10.1s
✔ Container deployment-sailbot-workspace-1 Stopped 10.4s
sean@LAPTOP-J5KA2EOT:~/test-workspace/sailbot_workspace$
Running the global launch file without internet works on my computer. Maybe it's a version issue?
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.4 LTS
Release: 22.04
Codename: jammy
$ docker --version
Docker version 26.1.4, build 5650f9b
$ docker compose version
Docker Compose version v2.27.1-desktop.1
$ wget --version
GNU Wget 1.21.2 built on linux-gnu.
Running the global launch file without internet works on my computer. Maybe it's a version issue?
You're running on native linux right?
If you're also running wsl2 it must be a version issue. or some docker/buildkit config
I'm not getting those versions with apt-get upgrade so I'll try to get pin docker and docker compose to the same versions as you and test it again.
I'm not getting those versions with apt-get upgrade so I'll try to get pin docker and docker compose to the same versions as you and test it again.
I'm also running wsl2. docker and docker compose come bundled with docker desktop, I have the latest version v4.31.1
Yeah I'm not able to get this working without internet. When do you have time to hop on a call to debug?
Description
sailbot_workspace_devcontainer_mongodb-data
To Do
mongo:4.4.18
)Verification
@SPDonaghy can try the following steps?
./scripts/deployment/start_containers.sh --website
runs the global launch file Works in WSL, Navigate and Local Transceiver nodes fail./scripts/deployment/start_containers.sh --website --interactive
then run./scripts/test.sh
and all tests pass./scripts/deployment/start_containers.sh --website
still runs the global launch file