-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.iceberg_asv_deployment
59 lines (48 loc) · 2.59 KB
/
Dockerfile.iceberg_asv_deployment
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
#Copyright [2025] [Robert Fudge]
#SPDX-FileCopyrightText: © 2025 Robert Fudge <rnfudge@mun.ca>
#SPDX-License-Identifier: {Apache-2.0}
#Build Issac ROS Image
#https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/
ARG BASE_IMAGE=ubuntu:22.04
FROM ${BASE_IMAGE}
#Maintainer label
LABEL maintainer="Robert Fudge <rnfudge@mun.ca>"
LABEL version="3.0.0"
ARG USERNAME=container-user
ARG USER_UID=1000
ARG USER_GID=1000
ARG PLATFORM=amd64
#Set user and home environment variables
ENV DEBIAN_FRONTEND=noninteractive
ENV USER=${USERNAME}
ENV HOME=/home/${USER}
#Downgrade to Pytorch 2.3.0 - Installing as system packages
RUN if [[ ${PLATFORM} == "arm64" ]] ; then \
pip3 uninstall -y torch && \
wget https://nvidia.box.com/shared/static/zvultzsmd4iuheykxy17s4l2n91ylpl8.whl && \
wget https://nvidia.box.com/shared/static/9si945yrzesspmg9up4ys380lqxjylc3.whl && \
wget https://nvidia.box.com/shared/static/u0ziu01c0kyji4zz3gxam79181nebylf.whl && \
mv ./zvultzsmd4iuheykxy17s4l2n91ylpl8.whl /torch-2.3.0-cp310-cp310-linux_aarch64.whl && \
mv ./9si945yrzesspmg9up4ys380lqxjylc3.whl /torchaudio-2.3.0+952ea74-cp310-cp310-linux_aarch64.whl && \
mv ./u0ziu01c0kyji4zz3gxam79181nebylf.whl /torchvision-0.18.0a0+6043bc2-cp310-cp310-linux_aarch64.whl && \
pip3 install --no-cache-dir /torch-2.3.0-cp310-cp310-linux_aarch64.whl && \
pip3 install --no-cache-dir /torchaudio-2.3.0+952ea74-cp310-cp310-linux_aarch64.whl && \
pip3 install --no-cache-dir /torchvision-0.18.0a0+6043bc2-cp310-cp310-linux_aarch64.whl \
&& rm -rf /torch-2.3.0-cp310-cp310-linux_aarch64.whl /torchvision-0.18.0a0+6043bc2-cp310-cp310-linux_aarch64.whl; \
fi
#Ensure needed packages are installed
RUN sudo apt update && sudo apt install -y python3-rosdep python3-rosinstall-generator python3-vcstool \
python3-rosinstall build-essential ros-${ROS_DISTRO}-foxglove-bridge python3-sphinx \
ros-${ROS_DISTRO}-mavros ros-${ROS_DISTRO}-mavros-extras ros-${ROS_DISTRO}-camera-calibration \
ros-${ROS_DISTRO}-usb-cam && if [[ $(uname -m) == "aarch64" ]] ; then \
sudo apt install -y nvidia-cuda-dev; fi
USER ${USER}
WORKDIR ${HOME}/ros_ws/src
RUN git clone https://github.com/mgonzs13/yolov8_ros.git && \
pip3 install -r yolov8_ros/requirements.txt && \
git clone https://github.com/IntelRealSense/realsense-ros.git -b ros2-master
WORKDIR ${HOME}/ros_ws
RUN sudo apt update && pip3 install -U sphinx && rosdep update && rosdep install -i \
--from-path src --rosdistro ${ROS_DISTRO} --skip-keys=librealsense2 -y && \
source /opt/ros/${ROS_DISTRO}/setup.bash && colcon build --symlink-install
ENTRYPOINT [ "/entrypoint.sh" ]