-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDockerfile.postgres_version
More file actions
58 lines (49 loc) · 1.73 KB
/
Dockerfile.postgres_version
File metadata and controls
58 lines (49 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
FROM python:3.12-slim
WORKDIR /app
# Install PostgreSQL and pgvector in one layer, then clean up build deps
RUN apt-get update && apt-get install -y \
postgresql-15 \
postgresql-contrib-15 \
postgresql-server-dev-15 \
build-essential \
git \
&& cd /tmp \
&& git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git \
&& cd pgvector \
&& make \
&& make install \
&& cd / \
&& rm -rf /tmp/pgvector \
&& apt-get remove -y build-essential git postgresql-server-dev-15 \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install Python dependencies
COPY requirements.pgvector.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Copy only essential application code
COPY src/ src/
COPY sql/ sql/
# Set up PostgreSQL data directory and permissions
RUN mkdir -p /var/lib/postgresql/data && \
chown -R postgres:postgres /var/lib/postgresql && \
mkdir -p /run/postgresql && \
chown -R postgres:postgres /run/postgresql
# Set environment variables for self-contained PostgreSQL
ENV PYTHONUNBUFFERED=1
ENV OLLAMA_API_URL=http://host.docker.internal:11434
ENV OLLAMA_EMBEDDING_MODEL=nomic-embed-text:v1.5
ENV POSTGRES_HOST=localhost
ENV POSTGRES_PORT=5432
ENV POSTGRES_DB=postgres
ENV POSTGRES_USER=postgres
ENV POSTGRES_PASSWORD=postgres
ENV DEFAULT_MEMORY_DOMAIN=default
ENV PGDATA=/var/lib/postgresql/data
# Create startup script
COPY docker-entrypoint-postgres.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint-postgres.sh
# Create volume for persistence
VOLUME ["/var/lib/postgresql/data"]
# Run the startup script that initializes PostgreSQL and starts the MCP server
CMD ["/usr/local/bin/docker-entrypoint-postgres.sh"]