ai-model-studio / Dockerfile
slk1st's picture
Deploy AI Model Studio
8a03d2c verified
Raw
History Blame Contribute Delete
2.31 kB
# โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
# Vcore AI Proxy โ€” Dockerfile
# Build: docker build -t vcore-proxy .
# Run: docker compose up -d
# โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
# โ”€โ”€ Stage 1: dependency builder โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
FROM python:3.12-slim AS builder
WORKDIR /build
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
# โ”€โ”€ Stage 2: runtime image โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
FROM python:3.12-slim AS runtime
LABEL org.opencontainers.image.title="AI Model Studio"
LABEL org.opencontainers.image.description="OpenAI compatible API proxy"
# ่ฟ่กŒๆ—ถ็ณป็ปŸไพ่ต–
RUN apt-get update \
-o Acquire::Retries=5 \
&& apt-get install -y --no-install-recommends \
ca-certificates curl gosu \
&& rm -rf /var/lib/apt/lists/*
# ๅˆ›ๅปบ้ž root ็”จๆˆท
RUN groupadd -r vproxy && useradd -r -g vproxy -d /app -s /sbin/nologin vproxy
WORKDIR /app
# ไปŽ builder ๅคๅˆถๅทฒๅฎ‰่ฃ…็š„ Python ๅŒ…
COPY --from=builder /install /usr/local
# ๅคๅˆถๅบ”็”จไปฃ็ 
COPY --chown=vproxy:vproxy . .
RUN mkdir -p /app/config.default \
&& cp -a /app/config/. /app/config.default/ 2>/dev/null || true
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
# ่ฟ่กŒๆ—ถๅฏๅ†™็›ฎๅฝ•
RUN mkdir -p /app/bin /app/logs /app/errors /app/config \
&& chown -R vproxy:vproxy /app/bin /app/logs /app/errors /app/config \
&& chmod +x /usr/local/bin/docker-entrypoint.sh
VOLUME ["/app/config"]
EXPOSE 7860
HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \
CMD curl -sf http://localhost:7860/health || exit 1
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["python", "main.py"]