-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
50 lines (37 loc) · 1.04 KB
/
Dockerfile
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
# syntax=docker/dockerfile:1.4
# the preceding line lets us use .gitignore for exclusions
FROM python:3.13-slim
RUN apt-get update && apt-get install -y \
git \
make \
gcc \
g++ \
swi-prolog \
nodejs npm \
nats-server \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /src && \
cd /src && \
git clone --depth 1 https://github.com/eyereasoner/eye && \
cd eye && \
sh install.sh && \
ln -s /opt/eye/bin/eye /usr/bin/eye
WORKDIR /app
COPY package.json .
COPY package-lock.json .
RUN npm ci
RUN pip install uv
ENV VIRTUAL_ENV=/app/.venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
COPY pyproject.toml .
COPY uv.lock .
# do the initial sync for dependencies from the lock file
RUN uv sync \
--no-install-project --no-install-workspace --no-sources \
--frozen \
--no-install-package swash
COPY . .
# do the full sync including installing the project etc
RUN uv sync --frozen
# Run the server on port 2026, configured for HTTP behind Fly.io's SSL termination
CMD ["bubble", "serve", "--bind", "0.0.0.0:2026"]