72 lines
2.2 KiB
Docker
72 lines
2.2 KiB
Docker
FROM python:3.12-slim AS builder
|
|
|
|
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
|
|
sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
|
|
sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list 2>/dev/null; \
|
|
true
|
|
|
|
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
|
|
|
|
WORKDIR /app
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
gcc \
|
|
libpq-dev \
|
|
default-libmysqlclient-dev \
|
|
unixodbc-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY backend-fastapi/requirements.txt .
|
|
RUN pip install --no-cache-dir --user -r requirements.txt
|
|
|
|
FROM python:3.12-slim
|
|
|
|
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
|
|
sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
|
|
sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list 2>/dev/null; \
|
|
true
|
|
|
|
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
|
|
|
|
WORKDIR /app
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl \
|
|
gnupg \
|
|
ca-certificates \
|
|
&& curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \
|
|
&& curl -fsSL https://packages.microsoft.com/config/debian/12/prod.list -o /etc/apt/sources.list.d/mssql-release.list \
|
|
&& apt-get update && ACCEPT_EULA=Y apt-get install -y --no-install-recommends \
|
|
libpq-dev \
|
|
default-libmysqlclient-dev \
|
|
unixodbc \
|
|
msodbcsql18 \
|
|
libpango-1.0-0 \
|
|
libpangocairo-1.0-0 \
|
|
libgdk-pixbuf-2.0-0 \
|
|
libffi-dev \
|
|
libcairo2 \
|
|
shared-mime-info \
|
|
fonts-noto-cjk \
|
|
fonts-wqy-zenhei \
|
|
fonts-wqy-microhei \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& fc-cache -fv
|
|
|
|
COPY --from=builder /root/.local /root/.local
|
|
|
|
ENV PATH=/root/.local/bin:$PATH \
|
|
PYTHONPATH=/app
|
|
|
|
COPY backend-fastapi/ .
|
|
|
|
COPY docker/backend/entrypoint.sh /entrypoint.sh
|
|
COPY docker/backend/wait-for-it.sh /wait-for-it.sh
|
|
RUN chmod +x /entrypoint.sh /wait-for-it.sh
|
|
|
|
RUN mkdir -p /app/env && echo "" > /app/env/prod.env
|
|
|
|
EXPOSE 8000
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|