OpenCode를 Docker Model Runner와 함께 사용하기

OpenCode를 Docker Model Runner와 함께 사용하기

OpenCode를 OpenAI 호환 엔드포인트로 Docker Model Runner에 연결하고, 코딩 모델을 선택하며, 더 큰 컨텍스트 윈도우로 gpt-oss 를 패키징해볼게요.

출처: 문서

본문

이 가이드는 OpenCode를 Docker Model Runner에 연결해 OpenCode가 코딩 작업에 로컬 모델을 사용할 수 있게 하는 방법을 보여줘요. opencode.json 파일을 구성하고, API 엔드포인트를 검증하고, 로컬 Docker 환경에서 제공되는 모델을 대상으로 OpenCode를 실행하게 돼요.

감사의 말: Docker는 이 가이드에 기여한 Pradumna Saraf 님께 감사를 전해요.

OpenCode 샌드박스 가이드와 달리, 이 가이드는 컨테이너화된 샌드박스에서 OpenCode를 실행하는 대신 Docker Model Runner를 백엔드로 하는 로컬 코딩 도구로 OpenCode를 사용하는 데 초점을 맞춰요.

이 가이드에서 배울 내용:

  • OpenCode용 코딩 모델 내려받기
  • Docker Model Runner를 사용하도록 OpenCode 구성하기
  • 로컬 API 엔드포인트 검증 및 OpenCode 시작하기
  • 더 큰 컨텍스트 윈도우가 필요할 때 gpt-oss 패키징하기

사전 요구사항

시작하기 전에 다음이 갖춰져 있는지 확인해주세요:

  • Docker Desktop 또는 Docker Engine 설치
  • Docker Model Runner 활성화
  • OpenCode 설치

Docker Desktop을 사용한다면 Settings > AI 에서 TCP 접근을 켜거나 다음을 실행해주세요:

$ docker desktop enable model-runner --tcp 12434

1단계: 코딩 모델 내려받기

OpenCode를 구성하기 전에 하나 이상의 모델을 내려받아주세요:

$ docker model pull ai/qwen3-coder
$ docker model pull ai/devstral-small-2

이 모델들은 큰 컨텍스트 윈도우를 지원하므로 코딩 워크플로에 잘 맞아요.

2단계: OpenCode 구성 만들기

OpenCode는 다음 위치 중 하나에서 구성을 읽어요:

  • ~/.config/opencode/opencode.json — 전역 구성용
  • 프로젝트 루트의 opencode.json — 프로젝트별 구성용

프로젝트 수준 구성이 전역 파일을 덮어써요.

Docker Model Runner를 가리키는 프로바이더를 추가해주세요:

// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "dmr": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Docker Model Runner",
      "options": {
        "baseURL": "http://localhost:12434/v1"
      },
      "models": {
        "qwen3-coder": {
          "name": "ai/qwen3-coder"
        },
        "devstral-small-2": {
          "name": "ai/devstral-small-2"
        }
      }
    }
  }
}

이 구성은 Docker Model Runner를 OpenCode 프로바이더로 추가하고 두 개의 로컬 모델을 노출해요.

참고: 설정이 이전 OpenAI 호환 경로를 기대한다면 http://localhost:12434/engines/v1 을 대신 사용하세요.

3단계: 엔드포인트 검증

OpenCode를 열기 전에 Docker Model Runner에 접근 가능한지 확인해주세요:

$ curl http://localhost:12434/v1/models

이전 경로를 사용한다면 다음을 실행해주세요:

$ curl http://localhost:12434/engines/v1/models

응답에는 Docker Model Runner를 통해 사용 가능한 모델이 나열돼야 해요.

4단계: OpenCode 시작

프로젝트 디렉터리에서 다음을 실행해주세요:

$ opencode

TUI에서 모델을 전환하려면 다음을 실행해주세요:

/models

그다음 dmr 프로바이더에서 모델을 선택해주세요.

5단계: 더 큰 컨텍스트 윈도우로 gpt-oss 패키징하기

이 단계는 선택사항이에요. 레포지토리 규모 작업에 더 큰 컨텍스트 윈도우가 필요하면 사용하세요.

gpt-oss 는 코딩에 특화된 모델보다 기본적으로 작은 컨텍스트 윈도우를 사용해요. 레포지토리 규모 작업에 사용하고 싶다면 더 큰 변형을 패키징해주세요:

$ docker model pull ai/gpt-oss
$ docker model package --from ai/gpt-oss --context-size 128000 gpt-oss:128k

그다음 OpenCode 구성에 추가해주세요:

// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "dmr": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Docker Model Runner",
      "options": {
        "baseURL": "http://localhost:12434/v1"
      },
      "models": {
        "gpt-oss:128k": {
          "name": "gpt-oss:128k"
        }
      }
    }
  }
}

트러블슈팅

OpenCode가 연결할 수 없다면 Docker Model Runner 상태를 확인해주세요:

$ docker model status

OpenCode가 내 모델을 표시하지 않는다면 로컬 모델을 나열해주세요:

$ docker model ls

모델이 없다면 먼저 모델을 내려받고 opencode.json 의 모델 이름이 사용하려는 로컬 모델과 일치하는지 확인해주세요.

더 알아보기

  • Docker Model Runner 개요
  • Docker Model Runner API 참조
  • IDE 및 도구 통합

더 알아보기 (Learn more)

  • Docker Model Runner
  • OpenCode
  • Docker Model Runner API 참조