2023-11-24 23:48:21 +01:00
|
|
|
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.10
|
2019-02-09 19:42:36 +04:00
|
|
|
|
2020-04-19 00:27:48 +03:00
|
|
|
WORKDIR /app/
|
|
|
|
|
|
|
|
# Install Poetry
|
2023-11-15 04:14:19 +08:00
|
|
|
RUN curl -sSL https://install.python-poetry.org | POETRY_HOME=/opt/poetry python && \
|
2020-04-19 00:27:48 +03:00
|
|
|
cd /usr/local/bin && \
|
|
|
|
ln -s /opt/poetry/bin/poetry && \
|
|
|
|
poetry config virtualenvs.create false
|
|
|
|
|
|
|
|
# Copy poetry.lock* in case it doesn't exist in the repo
|
2024-02-25 18:48:02 +01:00
|
|
|
COPY ./pyproject.toml ./poetry.lock* /app/
|
:recycle: Refactor backend, settings, DB sessions, types, configs, plugins (#158)
* :recycle: Refactor backend, update DB session handling
* :sparkles: Add mypy config and plugins
* :heavy_plus_sign: Use Python-jose instead of PyJWT
as it has some extra functionalities and features
* :sparkles: Add/update scripts for test, lint, format
* :wrench: Update lint and format configs
* :art: Update import format, comments, and types
* :art: Add types to config
* :sparkles: Add types for all the code, and small fixes
* :art: Use global imports to simplify exploring with Jupyter
* :recycle: Import schemas and models, instead of each class
* :truck: Rename db_session to db for simplicity
* :pushpin: Update dependencies installation for testing
2020-04-20 19:03:13 +02:00
|
|
|
|
|
|
|
# Allow installing dev dependencies to run tests
|
|
|
|
ARG INSTALL_DEV=false
|
2023-11-15 04:14:19 +08:00
|
|
|
RUN bash -c "if [ $INSTALL_DEV == 'true' ] ; then poetry install --no-root ; else poetry install --no-root --only main ; fi"
|
2019-02-09 19:42:36 +04:00
|
|
|
|
|
|
|
ENV PYTHONPATH=/app
|
2024-02-25 18:48:02 +01:00
|
|
|
|
2024-09-22 18:19:57 +02:00
|
|
|
COPY ./scripts /app/scripts
|
2024-03-12 16:09:27 +01:00
|
|
|
|
2024-02-25 18:48:02 +01:00
|
|
|
COPY ./alembic.ini /app/
|
|
|
|
|
|
|
|
COPY ./app /app/app
|
2024-09-20 17:12:40 +02:00
|
|
|
|
|
|
|
CMD ["fastapi", "run", "--workers", "4", "app/main.py"]
|