Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 13 additions & 15 deletions cs25-service/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,31 +22,29 @@ LABEL type="application" module="cs25-service"
# 작업 디렉토리
WORKDIR /apps

# Node.js + npm 설치 후, MCP 서버 전역 설치 + 심볼릭 링크 생성 + 빌드 타임 확인
# Node.js 22 설치 + 공식 Brave MCP 서버 설치 + 래퍼 스크립트 생성
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates gnupg bash \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
&& apt-get install -y --no-install-recommends nodejs \
\
# 1) 전역 설치
&& npm install -g @modelcontextprotocol/server-brave-search \
# 공식 패키지 설치 (deprecated 패키지 제거)
&& npm install -g @brave/brave-search-mcp-server \
\
Comment on lines +31 to 33
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

패키지 전환 OK. 다만 버전 고정 권장

@brave/brave-search-mcp-server 로의 전환 방향성은 적절합니다. 빌드 재현성을 위해 major/minor 버전 고정을 권장합니다(예: @brave/brave-search-mcp-server@^x.y). 최신 버전/존재 여부도 한 번 확인해 주세요.

아래 스크립트로 NPM 레지스트리에서 패키지 메타를 확인할 수 있습니다.


🏁 Script executed:

#!/bin/bash
# @brave/brave-search-mcp-server 패키지 최신 버전/타깃 존재 확인
set -euo pipefail
url="https://registry.npmjs.org/@brave%2Fbrave-search-mcp-server"
curl -fsSL "$url" | jq -r '.["dist-tags"].latest, .name'

Length of output: 234


버전 고정 적용 필요: @brave/brave-search-mcp-server@^1.3 지정 권장

최신 버전(1.3.4) 확인 완료했습니다. 빌드 재현성을 위해 major.minor 단위로 버전 고정하세요.

• 위치: cs25-service/Dockerfile (31–33행)
• 변경 예시:

- && npm install -g @brave/brave-search-mcp-server \
+ && npm install -g @brave/brave-search-mcp-server@^1.3 \
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# 공식 패키지 설치 (deprecated 패키지 제거)
&& npm install -g @brave/brave-search-mcp-server \
\
# 공식 패키지 설치 (deprecated 패키지 제거)
- && npm install -g @brave/brave-search-mcp-server \
+ && npm install -g @brave/brave-search-mcp-server@^1.3 \
\
🤖 Prompt for AI Agents
In cs25-service/Dockerfile around lines 31–33, the global npm install for
@brave/brave-search-mcp-server lacks a version pin; update that install to pin
the package to the 1.3 minor series (e.g. @brave/brave-search-mcp-server@^1.3)
to ensure build reproducibility, adjust the Dockerfile line accordingly, and
rebuild/check the image so the pinned version (current 1.3.x) is used
consistently.

# 2) 전역 prefix/bin 경로 계산 (npm bin -g 대신 npm prefix -g 사용)
# 전역 모듈 경로 계산
&& NPM_PREFIX="$(npm prefix -g)" \
&& SRC_BIN="${NPM_PREFIX}/bin/server-brave-search" \
&& SRCDIR="${NPM_PREFIX}/lib/node_modules/@brave/brave-search-mcp-server" \
\
# 3) 심볼릭 링크 생성 (/usr/local/bin 에 고정 경로 제공)
&& ln -sf "${SRC_BIN}" /usr/local/bin/server-brave-search \
# 실행 래퍼 스크립트 생성: server-brave-search (STDIO 고정)
&& printf '#!/usr/bin/env bash\nexec node "%s/dist/index.js" --transport stdio "$@"\n' "$SRCDIR" > /usr/local/bin/server-brave-search \
&& chmod +x /usr/local/bin/server-brave-search \
\
# ===== 실행 가능 여부 확인 =====
&& echo "=== npm prefix -g ===" && echo "${NPM_PREFIX}" \
&& echo "=== 실제 바이너리 위치 확인 ===" && ls -l "${SRC_BIN}" \
&& echo "=== 심볼릭 링크 확인 ===" && ls -l /usr/local/bin/server-brave-search \
&& echo "=== server-brave-search --help 실행 ===" \
&& /usr/local/bin/server-brave-search --help || (echo "[ERROR] server-brave-search 실행 실패" && exit 1) \
# 설치/실행 점검
&& echo "=== which server-brave-search ===" && which server-brave-search \
&& echo "=== server-brave-search --help ===" && server-brave-search --help || (echo "[ERROR] server-brave-search 실행 실패" && exit 1) \
\
# 정리
&& npm cache clean --force \
&& apt-get purge -y gnupg \
&& apt-get autoremove -y --purge \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
Expand Down