Skip to content

Commit

Permalink
Merge pull request #22 from avcuenes/docker_file
Browse files Browse the repository at this point in the history
add docker and makefile
  • Loading branch information
mgonzs13 authored Jul 26, 2024
2 parents af78f59 + 6f76666 commit f1e30d4
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 0 deletions.
39 changes: 39 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Use the official ROS 2 humble base image
ARG ROS_DISTRO=humble
FROM ros:${ROS_DISTRO} as deps

# Set the working directory
WORKDIR /root/ros2_ws

SHELL ["/bin/bash", "-c"]

RUN source /opt/ros/${ROS_DISTRO}/setup.bash
RUN apt-get update \
&& apt-get -y --quiet --no-install-recommends install \
gcc \
git \
python3 \
python3-pip

COPY . /root/ros2_ws/src
RUN rosdep install --from-paths src --ignore-src -r -y

WORKDIR /root/ros2_ws/src

RUN pip3 install -r requirements.txt
# Run a default command, e.g., starting a bash shell
CMD ["bash"]

WORKDIR /root/ros2_ws
FROM deps as builder
ARG CMAKE_BUILD_TYPE=Release

RUN source /opt/ros/${ROS_DISTRO}/setup.bash
RUN source /opt/ros/${ROS_DISTRO}/setup.bash && \
colcon build

# Source the ROS2 setup file
RUN echo "source /root/ros2_ws/install/setup.bash" >> ~/.bashrc

# Run a default command, e.g., starting a bash shell
CMD ["bash"]
7 changes: 7 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.PHONY : docker_build
docker_build:
docker build -t yasmin .

.PHONY : docker_run
docker_run:
docker run -it --net=host --ipc=host --privileged --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="${XAUTHORITY}:/root/.Xauthority" --entrypoint /bin/bash yasmin
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,43 @@ $ cd ~/ros2_ws
$ colcon build
```

## Docker Setup

If your operating system doesn't support ROS 2 humble, docker is a great alternative.

First of all, you have to build the project and create an image like so:

```shell
## Assuimg you are in the correct project directory
$ docker build -t yasmin .
```
To use a shortcut, you may use the following command:

```shell
## Assuimg you are in the correct project directory
$ make docker_build
```

After the image is created, copy and paste the following command to the terminal to run the image:

```shell
## Assuimg you are in the correct project directory
$ docker run -it --net=host --ipc=host --privileged --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="${XAUTHORITY}:/root/.Xauthority" --entrypoint /bin/bash yasmin
```
To use a shortcut, you may use following command:

```shell
$ make docker_run
```
### Running the package at docker image

If you are in the docker image , this project is already sourced and the demo script can be run as the following command;

```shell
$ cd /root/ros2_ws/
$ ros2 run yasmin_demos yasmin_demo.py
```

## Demos

There are some examples, for both Python and C++, that can be found in [yasmin_demos](./yasmin_demos/).
Expand Down

0 comments on commit f1e30d4

Please sign in to comment.