diff --git a/src/.env b/src/.env index a4e5a25..48e746e 100644 --- a/src/.env +++ b/src/.env @@ -1 +1,3 @@ +# .env for docker-compose + IP_ADDRESS=192.168.1.14 diff --git a/src/docker-compose.yml b/src/docker-compose.yml index d5fb476..6fcfa2f 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -5,20 +5,20 @@ version: '3' # Define services services: - # ROS Service - ros: - # Use Dockerfile in ros folder - build: ./ros - # Mount ros folder on host to app folder in container + # ROS Development Service + ros-dev: + # Use Dockerfile in ros-dev folder + build: ./ros-dev + # Mount ros-dev folder on host to app folder in container volumes: - - ./ros:/app + - ./ros-dev:/app # Set DISPLAY variable and network mode for GUIs environment: - DISPLAY=${IP_ADDRESS}:0.0 network_mode: "host" # Set working directory in container to app folder working_dir: /app - + # ROS Turtlesim Service ros-turtlesim: # Use Dockerfile in ros-turtlesim folder @@ -35,13 +35,27 @@ services: # Run turtlesim script when container is run command: bash -c "./turtlesim.sh" - # Gazebo Service - gazebo: - # Use Dockerfile in gazebo folder - build: ./gazebo - # Mount gazebo folder on host to app folder in container + # ROS Production Service + ros: + # Use Dockerfile in ros folder + build: ./ros + # Mount ros folder on host to app folder in container volumes: - - ./gazebo:/app + - ./ros:/app + # Set DISPLAY variable and network mode for GUIs + environment: + - DISPLAY=${IP_ADDRESS}:0.0 + network_mode: "host" + # Set working directory in container to app folder + working_dir: /app + + # Gazebo Production Service + gazebo: + # Use Dockerfile in gazebo folder + build: ./gazebo + # Mount gazebo folder on host to app folder in container + volumes: + - ./gazebo/.gazebo:/root/.gazebo # Set DISPLAY variable and network mode for GUIs environment: - DISPLAY=${IP_ADDRESS}:0.0 diff --git a/src/ros-dev/Dockerfile b/src/ros-dev/Dockerfile new file mode 100644 index 0000000..d11acf9 --- /dev/null +++ b/src/ros-dev/Dockerfile @@ -0,0 +1,16 @@ +# ROS Development Dockerfile + +# Use official image for ROS Melodic Morenia +FROM ros:melodic + +# Install dependencies for development +RUN sudo apt-get update && apt-get install -y \ + # ROS Tutorial Dependencies + ros-melodic-ros-tutorials \ + ros-melodic-rqt \ + ros-melodic-rqt-common-plugins \ + ros-melodic-turtlesim \ + # C++ Development: g++ compiler, etc. + build-essential + +CMD ["/bin/bash"] diff --git a/src/ros-turtlesim/Dockerfile b/src/ros-turtlesim/Dockerfile index 8e12f09..d73bbe7 100644 --- a/src/ros-turtlesim/Dockerfile +++ b/src/ros-turtlesim/Dockerfile @@ -1,4 +1,4 @@ -# ROS Dockerfile +# ROS Turtlesim Dockerfile # Use official image for ROS Melodic Morenia FROM ros:melodic diff --git a/src/ros-turtlesim/turtlesim.sh b/src/ros-turtlesim/turtlesim.sh index aa0a115..77fa4cc 100644 --- a/src/ros-turtlesim/turtlesim.sh +++ b/src/ros-turtlesim/turtlesim.sh @@ -1,3 +1,4 @@ +# turtlesim.sh #!/bin/bash roscore &