Dockerfile 750 B

1234567891011121314151617181920212223242526272829
  1. FROM python:3.12-slim
  2. WORKDIR /app
  3. ENV POETRY_VIRTUALENVS_CREATE=false \
  4. PYTHONUNBUFFERED=1 \
  5. PYTHONDONTWRITEBYTECODE=1
  6. RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
  7. && pip install --no-cache-dir poetry
  8. COPY pyproject.toml poetry.lock ./
  9. RUN poetry source add --priority=primary tsinghua https://pypi.tuna.tsinghua.edu.cn/simple || true \
  10. && poetry lock \
  11. && poetry install --no-root --no-interaction --no-ansi
  12. COPY . .
  13. # 默认 dev 环境,部署时通过 -e APP_ENV=sit/uat 覆盖
  14. ARG APP_ENV=dev
  15. ENV APP_ENV=${APP_ENV}
  16. ARG GATEWAY_PORT=33333
  17. ENV GATEWAY_PORT=${GATEWAY_PORT}
  18. EXPOSE ${GATEWAY_PORT}
  19. CMD ["sh", "-c", "uvicorn alien_gateway.main:app --host 0.0.0.0 --port ${GATEWAY_PORT}"]