FROM docker.1ms.run/library/ros:humble-ros-base

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

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
    python3-colcon-common-extensions \
    ros-humble-navigation2 \
    ros-humble-nav2-bringup \
    ros-humble-slam-toolbox \
    ros-humble-rviz2 \
    ros-humble-turtlebot3 \
    ros-humble-turtlebot3-msgs \
    ros-humble-ros-gzharmonic \
    ros-humble-robot-state-publisher \
    gz-sim8-cli \
    gz-launch7-cli \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /workspaces/vlm_office
RUN mkdir -p src

COPY turtlebot3_simulations src/turtlebot3_simulations
COPY m-explore-ros2 src/m-explore-ros2
COPY docker/entrypoint.sh /entrypoint.sh
COPY docker/run_task1.sh /run_task1.sh
COPY docker/save_map.sh /save_map.sh

RUN chmod +x /entrypoint.sh /run_task1.sh /save_map.sh && \
    source /opt/ros/humble/setup.bash && \
    colcon build --symlink-install \
      --packages-select turtlebot3_gazebo explore_lite

ENV TURTLEBOT3_MODEL=burger
ENV NAV2_MAP_BASENAME=/data/maps/office_map
ENV GZ_SIM_RESOURCE_PATH=/workspaces/vlm_office/src/turtlebot3_simulations/turtlebot3_gazebo/models/turtlebot3_office:/workspaces/vlm_office/src/turtlebot3_simulations/turtlebot3_gazebo/models

ENTRYPOINT ["/entrypoint.sh"]
CMD ["bash"]
