Files
my-pal-mcp-server/setup-docker-env.bat
2025-06-10 10:40:54 +04:00

124 lines
4.0 KiB
Batchfile

@echo off
REM Helper script to set up .env file for Docker usage on Windows
echo Setting up .env file for Gemini MCP Server Docker...
REM Get the current working directory (absolute path)
set CURRENT_DIR=%CD%
REM Check if .env already exists
if exist .env (
echo Warning: .env file already exists! Skipping creation.
echo.
) else (
REM Check if GEMINI_API_KEY is already set in environment
if defined GEMINI_API_KEY (
set API_KEY_VALUE=%GEMINI_API_KEY%
echo Found existing GEMINI_API_KEY in environment
) else (
set API_KEY_VALUE=your-gemini-api-key-here
)
REM Create the .env file
(
echo # Gemini MCP Server Docker Environment Configuration
echo # Generated on %DATE% %TIME%
echo.
echo # Your Gemini API key ^(get one from https://makersuite.google.com/app/apikey^)
echo # IMPORTANT: Replace this with your actual API key
echo GEMINI_API_KEY=%API_KEY_VALUE%
) > .env
echo.
echo Created .env file
echo.
)
REM Check if Docker is installed and running
where docker >nul 2>nul
if %errorlevel% neq 0 (
echo Warning: Docker is not installed. Please install Docker first.
echo Visit: https://docs.docker.com/get-docker/
) else (
REM Check if Docker daemon is running
docker info >nul 2>nul
if %errorlevel% neq 0 (
echo Warning: Docker daemon is not running. Please start Docker.
) else (
REM Clean up and build Docker image
echo.
echo Building Docker image...
REM Stop running containers
echo - Checking for running containers...
for /f "tokens=*" %%i in ('docker ps -q --filter ancestor^=gemini-mcp-server 2^>nul') do (
docker stop %%i >nul 2>&1
)
REM Remove containers
echo - Removing old containers...
for /f "tokens=*" %%i in ('docker ps -aq --filter ancestor^=gemini-mcp-server 2^>nul') do (
docker rm %%i >nul 2>&1
)
REM Remove existing image
echo - Removing old image...
docker rmi gemini-mcp-server:latest >nul 2>&1
REM Build fresh image
echo - Building fresh image with --no-cache...
docker build -t gemini-mcp-server:latest . --no-cache >nul 2>&1
if %errorlevel% equ 0 (
echo Docker image built successfully!
) else (
echo Failed to build Docker image. Run 'docker build -t gemini-mcp-server:latest .' manually to see errors.
)
echo.
)
)
echo Next steps:
if "%API_KEY_VALUE%"=="your-gemini-api-key-here" (
echo 1. Edit .env and replace 'your-gemini-api-key-here' with your actual Gemini API key
echo 2. Copy this configuration to your Claude Desktop config:
) else (
echo 1. Copy this configuration to your Claude Desktop config:
)
echo.
echo ===== COPY BELOW THIS LINE =====
echo {
echo "mcpServers": {
echo "gemini": {
echo "command": "%CURRENT_DIR%\gemini-mcp-docker.bat"
echo }
echo }
echo }
echo ===== COPY ABOVE THIS LINE =====
echo.
echo Alternative: If you prefer the direct Docker command:
echo {
echo "mcpServers": {
echo "gemini": {
echo "command": "docker",
echo "args": [
echo "run",
echo "--rm",
echo "-i",
echo "--env-file", "%CURRENT_DIR%\.env",
echo "-e", "WORKSPACE_ROOT=%USERPROFILE%",
echo "-v", "%USERPROFILE%:/workspace:ro",
echo "gemini-mcp-server:latest"
echo ]
echo }
echo }
echo }
echo.
echo Config file location:
echo Windows: %%APPDATA%%\Claude\claude_desktop_config.json
echo.
echo Note: This configuration mounts your user directory ^(%USERPROFILE%^).
echo Docker can access any file within your user directory.
echo.
echo If you want to restrict access to a specific directory:
echo Change both the mount ^(-v^) and WORKSPACE_ROOT to match:
echo Example: -v "%CURRENT_DIR%:/workspace:ro" and WORKSPACE_ROOT=%CURRENT_DIR%
echo The container will automatically use /workspace as the sandbox boundary.