#!/usr/bin/env bash # ============================================================================= # start.sh —— Linux / WSL / macOS 一键启动脚本。 # # 与 start.ps1 同样四步,只是 shell 改 bash: # 1) docker compose build # 2) docker compose up -d # 3) docker exec ... bash build.sh # 4) docker exec ... source install/setup.bash && bash # ============================================================================= set -euo pipefail # 出错即停;严格变量未定义检查;管道失败传播。 cd "$(dirname "$0")" # 切到本脚本所在目录(确保 docker-compose.yml 路径对)。 echo "[1/4] 构建镜像 (首次约 5-10 分钟)..." >&2 docker compose -f docker/docker-compose.yml build echo "[2/4] 启动容器..." >&2 docker compose -f docker/docker-compose.yml up -d echo "[3/4] 进入容器并编译..." >&2 docker exec -it ros2_dev bash -lc "cd /root/ros2_ws && bash build.sh" echo "[4/4] 进入开发终端..." >&2 docker exec -it ros2_dev bash -lc "source install/setup.bash && exec bash"