The LGDXRobot2 ROS2 Docker image allows you to deploy all dependencies in one go, but it does not include Webots. Running Webots inside Docker may be slow. Fortunately, Webots is flexible and can run on the simulation via network.
mkdir -p ~/webots_share
docker run -d \
--name lgdxrobot2 \
-e PUID=1000 \
-e PGID=1000 \
-v ~/webots_share:/config/webots_share \
-p 3000:3000 \
-p 3001:3001 yukaitung/lgdxrobot2.desktop:latest
export WEBOTS_SHARED_FOLDER=~/webots_share:/config/webots_share
export WEBOTS_HOME=/Applications/Webots.app # macOS
python3 /Users/sam/Develop/keys/local_simulation_server.py