
* Update CRUD utils to use types better. * Simplify Pydantic model names, from `UserInCreate` to `UserCreate`, etc. * Upgrade packages. * Add new generic "Items" models, crud utils, endpoints, and tests. To facilitate re-using them to create new functionality. As they are simple and generic (not like Users), it's easier to copy-paste and adapt them to each use case. * Update endpoints/*path operations* to simplify code and use new utilities, prefix and tags in `include_router`. * Update testing utils. * Update linting rules, relax vulture to reduce false positives. * Update migrations to include new Items. * Update project README.md with tips about how to start with backend.
25 lines
693 B
Docker
25 lines
693 B
Docker
FROM python:3.7
|
|
|
|
RUN pip install requests pytest tenacity passlib[bcrypt] "fastapi>=0.16.0" psycopg2-binary SQLAlchemy
|
|
|
|
# For development, Jupyter remote kernel, Hydrogen
|
|
# Using inside the container:
|
|
# jupyter notebook --ip=0.0.0.0 --allow-root
|
|
ARG env=prod
|
|
RUN bash -c "if [ $env == 'dev' ] ; then pip install jupyter ; fi"
|
|
EXPOSE 8888
|
|
|
|
COPY ./app /app
|
|
|
|
ENV PYTHONPATH=/app
|
|
|
|
COPY ./app/tests-start.sh /tests-start.sh
|
|
|
|
RUN chmod +x /tests-start.sh
|
|
|
|
# This will make the container wait, doing nothing, but alive
|
|
CMD ["bash", "-c", "while true; do sleep 1; done"]
|
|
|
|
# Afterwards you can exec a command /tests-start.sh in the live container, like:
|
|
# docker exec -it backend-tests /tests-start.sh
|