We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nishide-dev/ml-research-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
Dockerfile.dev•2.53 KiB
# Reference: https://github.com/astral-sh/uv-docker-example/blob/main/multistage.Dockerfile
# Development version with UV tools and development dependencies included
# Use UV image directly for development environment
FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim
# Set environment variables for UV
ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy
ENV UV_PYTHON_DOWNLOADS=0
# ホストのユーザー名、ユーザーID、グループIDをビルド引数として受け取る
ARG USERNAME=appuser
ARG USER_ID=1000
ARG GROUP_ID=1000
# ユーザーとグループを指定されたIDで作成
RUN groupadd -g ${GROUP_ID} ${USERNAME} && \
useradd -u ${USER_ID} -g ${USERNAME} -s /bin/bash -m ${USERNAME}
# Allow user to run SSH daemon without password
RUN apt-get update && apt-get install -y sudo openssh-server && \
mkdir -p /run/sshd && \
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config && \
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config && \
echo "Port 2222" >> /etc/ssh/sshd_config && \
mkdir -p /etc/sudoers.d && \
echo "$USERNAME ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nopasswd && \
chmod 0440 /etc/sudoers.d/nopasswd
# Create cache directory with proper permissions for UV
RUN mkdir -p /home/$USERNAME/.cache/uv && chown -R $USERNAME:$USERNAME /home/$USERNAME
# Install additional development tools
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
procps \
vim \
openssh-server \
sudo \
&& mkdir -p /run/sshd \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy the entire project for development
COPY . /app
# Give user ownership of virtual environment directory and project files
RUN mkdir -p /app/.venv && chown -R $USERNAME:$USERNAME /app/.venv \
&& chown -R $USERNAME:$USERNAME /app
# Install dependencies including development dependencies
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync
# Place executables in the environment at the front of the path
ENV PATH="/app/.venv/bin:$PATH"
# Set UV cache path for the user
ENV UV_CACHE_DIR="/home/$USERNAME/.cache/uv"
# Use non-root user for better security
USER $USERNAME
# No ENTRYPOINT or CMD for maximum flexibility
# To run in development with code mounting:
# docker run -v $(pwd):/app -p 8000:8000 ml-research-mcp-dev python -m ml_research_mcp.main
# or for live reload with something like uvicorn:
# docker run -v $(pwd):/app -p 8000:8000 ml-research-mcp-dev uvicorn ml_research_mcp.app:app --reload --host 0.0.0.0