Update 2026-05-13 16:43:53
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Backend Dockerfile (Context is root)
|
||||
# 固定 Debian bookworm,避免 python:3.11-slim 随上游切到 trixie/testing 导致 apt 源 404
|
||||
FROM python:3.11-slim-bookworm
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# 构建时若访问 deb.debian.org 不稳定:docker compose build --build-arg APT_CN_MIRROR=true
|
||||
ARG APT_CN_MIRROR=false
|
||||
|
||||
# Install system dependencies(重试 + 超时;可选国内镜像)
|
||||
RUN set -eux; \
|
||||
printf 'Acquire::Retries "5";\nAcquire::http::Timeout "120";\nAcquire::https::Timeout "120";\n' \
|
||||
> /etc/apt/apt.conf.d/99dataclaw; \
|
||||
if [ "$APT_CN_MIRROR" = "true" ] || [ "$APT_CN_MIRROR" = "1" ] || [ "$APT_CN_MIRROR" = "yes" ]; then \
|
||||
for f in /etc/apt/sources.list.d/*.sources /etc/apt/sources.list; do \
|
||||
[ -f "$f" ] || continue; \
|
||||
sed -i 's|http://deb.debian.org/debian|https://mirrors.tuna.tsinghua.edu.cn/debian|g' "$f"; \
|
||||
sed -i 's|https://deb.debian.org/debian|https://mirrors.tuna.tsinghua.edu.cn/debian|g' "$f"; \
|
||||
sed -i 's|http://security.debian.org/debian-security|https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' "$f"; \
|
||||
sed -i 's|https://security.debian.org/debian-security|https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' "$f"; \
|
||||
done; \
|
||||
fi; \
|
||||
i=1; \
|
||||
while [ "$i" -le 8 ]; do \
|
||||
apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
build-essential curl libpq-dev && \
|
||||
rm -rf /var/lib/apt/lists/* && exit 0; \
|
||||
echo "apt attempt $i failed, retry in 25s..."; \
|
||||
i=$((i+1)); sleep 25; \
|
||||
done; \
|
||||
exit 1
|
||||
|
||||
# Install uv
|
||||
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
||||
|
||||
# Copy build-related files from dataclaw-api directory
|
||||
COPY dataclaw-api/pyproject.toml dataclaw-api/uv.lock dataclaw-api/hatch_build.py dataclaw-api/README.md ./
|
||||
|
||||
# Install dependencies
|
||||
RUN uv sync --frozen --no-dev
|
||||
|
||||
# Copy dataclaw-api source
|
||||
COPY dataclaw-api/ .
|
||||
|
||||
# Copy the actual agent-core package from the nested directory
|
||||
COPY agent-core/nanobot/ ./nanobot/
|
||||
# Copy dataclaw-voice source
|
||||
COPY dataclaw-voice/ ./whisper/
|
||||
|
||||
# Expose port
|
||||
EXPOSE 8000
|
||||
|
||||
# Run the application with uvicorn
|
||||
CMD ["uv", "run", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
Reference in New Issue
Block a user