Docker 기반 ROS2 개발
ROS2 워크스페이스를 Docker로 컨테이너화하고 docker-compose로 로봇 소프트웨어 스택을 운영하는 실전 패턴 모음 스킬입니다.
개발·코딩고급★ 336⑂ 46AI 점수 9/10마지막 업데이트: 2026. 8. 12.
무엇을 해주나
Claude가 ROS2 프로젝트를 Docker로 다룰 때 참고하는 실무 지침서입니다. 다음 내용을 구체적인 코드와 함께 제공합니다.
- OSRF 공식 이미지 계층(
ros-core→ros-base→perception→desktop)별 용량·용도 비교표 - deps → dev → build → runtime 4단계 멀티스테이지 Dockerfile 템플릿 (ccache, rosdep 캐시 최적화 포함)
- 서브시스템별 컨테이너 분리, healthcheck 기반
depends_on, dev/deploy profiles 분리 docker-compose 구성 - 브리지 네트워크에서 DDS 디스커버리가 깨질 때의 CycloneDDS / FastDDS 유니캐스트 XML 설정,
/dev/shm공유 메모리 전송 - host / bridge / macvlan 네트워크 모드 의사결정 표
- NVIDIA Container Toolkit 설치와
deploy.resources를 통한 GPU 패스스루 - rviz2·rqt를 위한 X11 / Wayland 포워딩, CI용 Xvfb 헤드리스 렌더링
- 카메라·시리얼 장치 패스스루, udev 안정 심볼릭 링크, device_cgroup_rules
- VS Code devcontainer.json 예시, GitHub Actions 매트릭스 빌드 + buildx 레이어 캐시
- 흔한 안티패턴(모놀리식 컨테이너, DDS 설정 없는 브리지 네트워크 등)과 수정 방법
이런 분께 추천
- ROS2 Humble/Jazzy/Rolling 워크스페이스를 Docker로 배포하려는 로보틱스 엔지니어
- 컨테이너를 나눴는데
ros2 topic list에 토픽이 안 보이는 DDS 디스커버리 문제로 고생하는 분 - 인식(perception) 노드에 GPU를 붙이거나 컨테이너에서 rviz2를 띄워야 하는 분
- ROS2 빌드/테스트를 Docker 기반 CI로 옮기려는 분
활용 예시
- "우리 colcon 워크스페이스용 멀티스테이지 Dockerfile 만들어줘. 런타임 이미지는 최소 크기로." → deps/dev/build/runtime 4단계 Dockerfile과 entrypoint 스크립트를 생성합니다.
- "브리지 네트워크로 바꿨더니 컨테이너끼리 토픽이 안 보여." → CycloneDDS 유니캐스트 peer XML을 작성하고 compose에 마운트·환경변수를 붙여줍니다.
- "카메라 노드에 GPU와 /dev/video0을 붙이고 rviz는 dev 프로필에서만 뜨게 해줘." →
deploy.resourcesGPU 예약,devices/group_add,profiles: [dev]X11 설정이 들어간 docker-compose.yml을 제안합니다.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/arpitg1304/robotics-agent-skills/HEAD/skills/docker-ros2-development/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 arpitg1304/robotics-agent-skills 의 skills/docker-ros2-development 폴더를 내 ~/.claude/skills/docker-ros2-development/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/arpitg1304/robotics-agent-skills.git && mkdir -p ~/.claude/skills && cp -r robotics-agent-skills/skills/docker-ros2-development ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 열고 Claude Code가 설치되어 있는지 확인합니다 (
claude --version). - 스킬 저장소를 원하는 위치에 복제합니다.
git clone https://github.com/arpitg1304/robotics-agent-skills.git - 개인 스킬 폴더를 준비합니다.
mkdir -p ~/.claude/skills - 이 스킬 폴더만 복사합니다.
cp -r robotics-agent-skills/skills/docker-ros2-development ~/.claude/skills/ - 프로젝트 단위로만 쓰고 싶다면
~/.claude/skills대신 프로젝트 안의.claude/skills/로 복사하세요. - Claude Code를 다시 실행하고
/skills또는 "사용 가능한 스킬 알려줘"로docker-ros2-development가 목록에 있는지 확인합니다. - "ROS2 워크스페이스용 Dockerfile 만들어줘"처럼 요청하면 스킬이 자동으로 발동합니다.
- (선행 조건) 실제 실행에는 호스트에 Docker/Docker Compose, GPU 사용 시 NVIDIA Container Toolkit이 필요합니다.
GitHub에서 원본 보기 ↗라이선스: Apache-2.0