diff --git a/dockerfiles/ros_entrypoint.sh b/dockerfiles/ros_entrypoint.sh
index 4a33870bfda3926a3ed362adef2bcd9b91791c8b..af538a0ec76520cac29dd045a0bf73f80b6fe14b 100644
--- a/dockerfiles/ros_entrypoint.sh
+++ b/dockerfiles/ros_entrypoint.sh
@@ -1,5 +1,15 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
-# Setup ros environment
-source "/opt/ros/$ROS_DISTRO/setup.bash"
-exec "$@"
\ No newline at end of file
+# Check if the shell is Bash or Zsh
+if [ -n "$BASH_VERSION" ]; then
+    # Bash
+    source "/opt/ros/$ROS_DISTRO/setup.bash"
+elif [ -n "$ZSH_VERSION" ]; then
+    # Zsh
+    source "/opt/ros/$ROS_DISTRO/setup.zsh"
+else
+    echo "Unknown shell. This script is designed for Bash and Zsh."
+    return 1
+fi
+
+exec "$@"