Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use poetry insted of Pipfile #144

Merged
merged 14 commits into from
Apr 18, 2020
Merged

Conversation

RCheese
Copy link
Contributor

@RCheese RCheese commented Apr 16, 2020

Copy link
Member

@tiangolo tiangolo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking a stab at this! 🚀 🍰

I would like to do some small things a bit differently, I'm adding some comments here.

README.md Outdated Show resolved Hide resolved
cookiecutter.json Outdated Show resolved Hide resolved
{{cookiecutter.project_slug}}/backend/backend.dockerfile Outdated Show resolved Hide resolved
{{cookiecutter.project_slug}}/backend/make-requirements.sh Outdated Show resolved Hide resolved
{{cookiecutter.project_slug}}/backend/requirements.txt Outdated Show resolved Hide resolved
{{cookiecutter.project_slug}}/backend/tests.dockerfile Outdated Show resolved Hide resolved
{{cookiecutter.project_slug}}/cookiecutter-config-file.yml Outdated Show resolved Hide resolved
{{cookiecutter.project_slug}}/scripts/prepare.sh Outdated Show resolved Hide resolved
@RCheese RCheese requested a review from tiangolo April 17, 2020 18:06
@RCheese
Copy link
Contributor Author

RCheese commented Apr 18, 2020

@tiangolo

  1. https://python-poetry.org/docs/#installing-with-pip
  2. What a reason for use poetry inside deployed container?

@tiangolo tiangolo merged commit c8bcc0b into fastapi:master Apr 18, 2020
@tiangolo
Copy link
Member

Thanks for your contribution! 🍰 I updated it a bit and it's now merged. 🚀 🎉

br3ndonland added a commit to whythawk/full-stack-fastapi-postgresql that referenced this pull request Jul 19, 2021
fastapi#69
fastapi#123
fastapi#144
fastapi/full-stack-fastapi-template@00297f9

Commit 00297f9 gitignored poetry.lock. This commit will add poetry.lock
to version control with Git to avoid dependency resolution errors during
Docker builds.

There is no established convention for working with Poetry in Docker,
so developers have to consider each use case individually. See:
python-poetry/poetry#1879 (comment)

In this project, the Dockerfile copies poetry.lock into the Docker image,
but there's no step to generate poetry.lock in the first place. Without
poetry.lock, dependency resolutions are commonly seen, such as:

```text
❯ bash scripts/test.sh

WARNING: The following deploy sub-keys are not supported and have been ignored: labels
WARNING: The following deploy sub-keys are not supported and have been ignored: labels
WARNING: The following deploy sub-keys are not supported and have been ignored: labels
WARNING: The following deploy sub-keys are not supported and have been ignored: labels
WARNING: The following deploy sub-keys are not supported and have been ignored: labels
db uses an image, skipping
flower uses an image, skipping
pgadmin uses an image, skipping
proxy uses an image, skipping
queue uses an image, skipping
Building backend
[+] Building 15.3s (8/10)
 => [internal] load build definition from backend.dockerfile                                      0.2s
 => => transferring dockerfile: 797B                                                              0.1s
 => [internal] load .dockerignore                                                                 0.1s
 => => transferring context: 2B                                                                   0.0s
 => [internal] load metadata for ghcr.io/br3ndonland/inboard:fastapi-python3.9                    0.3s
 => [1/6] FROM ghcr.io/br3ndonland/inboard:fastapi-python3.9@sha256:5591f436a37490a1569afd9e55ae  0.0s
 => [internal] load build context                                                                 0.0s
 => => transferring context: 64.67kB                                                              0.0s
 => CACHED [2/6] COPY ./app/pyproject.toml ./app/poetry.lock* /app/                               0.0s
 => CACHED [3/6] WORKDIR /app/                                                                    0.0s
 => ERROR [4/6] RUN bash -c "if [ true == 'true' ] ; then poetry install --no-root ; else poetr  14.4s
------
 > [4/6] RUN bash -c "if [ true == 'true' ] ; then poetry install --no-root ; else poetry install --no-root --no-dev ; fi":
 Skipping virtualenv creation, as specified in config file.
 Installing dependencies from lock file
 Warning: The lock file is not up to date with the latest changes in pyproject.toml. You may be getting   dependencies. Run update to update them.

   SolverProblemError

   Because app depends on sqlalchemy-stubs (^0.3) which doesn't match any versions, version solving failed.

   at /opt/poetry/lib/poetry/puzzle/solver.py:241 in _solve
       237│             packages = result.packages
       238│         except OverrideNeeded as e:
       239│             return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
       240│         except SolveFailure as e:
     → 241│             raise SolverProblemError(e)
       242│
       243│         results = dict(
       244│             depth_first_search(
       245│                 PackageNode(self._package, packages), aggregate_package_nodes
------
executor failed running [/bin/sh -c bash -c "if [ $INSTALL_DEV == 'true' ] ; then poetry install --no-root ; else poetry install --no-root --no-dev ; fi"]: exit code: 1
ERROR: Service 'backend' failed to build : Build failed
```
gusevyaroslove pushed a commit to gusevyaroslove/fastapi-template that referenced this pull request Aug 4, 2024
* use poetry insted of Pipfile

* fix python black version

* set prepare.sh as executable

* revert postgres 11

* use multi-build stage in docker

* fix poetry path

* 🔥 Remove uneeded changes

* 🔧 Move and update Poetry file

* 🙈 Update gitignore

* 🐳 Update Dockerfiles to use Poetry

* 🐳 Update Dockerfiles with Poetry

* 🔧 Add SERVER_NAME required by Celery worker

* 🐳 Update Poetry install to avoid env conflicts

* ➕ Add Pytest to Poetry dependencies

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants