1
- FROM quay. io/centos/centos:stream9
1
+ FROM registry.redhat. io/ubi9/python-311
2
2
3
3
# Set default MCP transport if not provided
4
4
ENV MCP_TRANSPORT=stdio
5
5
6
- # Install Python 3.11, pip, and build dependencies
7
- RUN dnf -y install --setopt=install_weak_deps=False --setopt=tsflags=nodocs \
8
- python3.12 python3.12-devel python3.12-pip gcc make git && \
9
- dnf clean all
10
-
11
- # Install uv (universal virtualenv/dependency manager)
12
- RUN pip3.12 install --no-cache-dir --upgrade pip && \
13
- pip3.12 install --no-cache-dir uv
14
-
15
- # Copy project files to working directory
16
- WORKDIR /app
17
-
18
- # Set ownership to the user we created. Group 0 (root) is important for OpenShift compatibility.
19
- RUN chown -R 1001:0 /app && \
20
- chgrp -R 0 /app && \
21
- chmod -R g+rwX /app
22
-
23
- # Switch to the non-root user *before* copying files and installing dependencies
24
- USER 1001
25
-
26
- COPY pyproject.toml ./
27
- COPY .python-version ./
28
- COPY uv.lock ./
29
- COPY README.md ./
30
- # Copy application files (needed for editable install)
31
- COPY ./src/ ./
32
-
6
+ COPY . .
33
7
# Install dependencies
34
- RUN uv sync --no-cache --locked
8
+ RUN pip install --no-cache-dir .
35
9
36
10
# Environment variables (set these when running the container)
37
11
# SNOWFLAKE_BASE_URL - Snowflake API base URL (optional, defaults to Red Hat's instance)
@@ -43,4 +17,4 @@ RUN uv sync --no-cache --locked
43
17
# Expose metrics port
44
18
EXPOSE 8000
45
19
46
- CMD ["uv" , "run" , "--no-cache" , " python" , "mcp_server.py" ]
20
+ CMD ["python" , "src/ mcp_server.py" ]
0 commit comments