-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathDockerfile.gazebo
61 lines (57 loc) · 2.62 KB
/
Dockerfile.gazebo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Copyright (C) 2025, Raffaello Bonghi <raffaello@rnext.it>
# All rights reserved
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Use the official ROS 2 base image
FROM osrf/ros:humble-simulation
# Create a workspace
ENV ROS_WS=/ros_ws
RUN mkdir -p $ROS_WS/src
WORKDIR $ROS_WS
# Specify non-root admin user for container
ARG USERNAME=admin
ENV USERNAME=${USERNAME}
# Copy the nanosaur_simulation packages into the workspace
COPY shared_src src/
COPY simulation_ws/src src/
# Copy scripts
RUN cp ${ROS_WS}/src/nanosaur_simulation/scripts/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Install dependencies
RUN apt-get update && apt-get install -y \
gosu sudo \
python3-colcon-common-extensions && \
rosdep update && \
rosdep install --from-paths src --ignore-src -r -y && \
rm -rf /var/lib/apt/lists/*
# Compile the workspace
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
colcon build && \
rm -R $ROS_WS/build $ROS_WS/src $ROS_WS/log
# https://docs.docker.com/engine/reference/builder/#stopsignal
# https://hynek.me/articles/docker-signals/
STOPSIGNAL SIGINT
# Set the entrypoint
ENTRYPOINT [ "/entrypoint.sh" ]
# Set the default command
CMD [ "ros2", "launch", "nanosaur_gazebo", "gazebo.launch.py" ]