diff --git a/apps/api/Dockerfile.api b/apps/api/Dockerfile.api index 8ccb9e9d9d..2324cab7f6 100644 --- a/apps/api/Dockerfile.api +++ b/apps/api/Dockerfile.api @@ -44,10 +44,14 @@ RUN apk add --no-cache --virtual .build-deps \ # Add in Django deps and generate Django's static files COPY manage.py manage.py +COPY pyproject.toml pyproject.toml COPY plane plane/ COPY templates templates/ COPY package.json package.json +# Install the package to register the `plane` console script +RUN pip install --no-deps --no-cache-dir . + RUN apk --no-cache add "bash~=5.2" COPY ./bin ./bin/ diff --git a/apps/api/Dockerfile.dev b/apps/api/Dockerfile.dev index 679b9b95c4..b9979c13ef 100644 --- a/apps/api/Dockerfile.dev +++ b/apps/api/Dockerfile.dev @@ -46,10 +46,14 @@ RUN apk add --no-cache --virtual .build-deps \ # Add in Django deps and generate Django's static files COPY manage.py manage.py +COPY pyproject.toml pyproject.toml COPY plane plane/ COPY templates templates/ COPY package.json package.json +# Install the package to register the `plane` console script +RUN pip install --no-deps --no-cache-dir . + RUN apk --no-cache add "bash~=5.2" COPY ./bin ./bin/ diff --git a/apps/api/Dockerfile.fips b/apps/api/Dockerfile.fips index 5677bd4643..8874e7d826 100644 --- a/apps/api/Dockerfile.fips +++ b/apps/api/Dockerfile.fips @@ -47,11 +47,15 @@ RUN pip install -r requirements.txt --compile --no-cache-dir # App files # ------------------------- COPY manage.py manage.py +COPY pyproject.toml pyproject.toml COPY plane plane/ COPY templates templates/ COPY package.json package.json COPY ./bin ./bin/ +# Install the package to register the `plane` console script +RUN pip install --no-deps --no-cache-dir . + RUN mkdir -p /code/plane/logs && \ chown -R 1001:0 /code/plane && \ chmod +x ./bin/* diff --git a/apps/api/manage.py b/apps/api/manage.py index 6229df2b2d..8cfeb38b43 100644 --- a/apps/api/manage.py +++ b/apps/api/manage.py @@ -13,7 +13,8 @@ import os import sys -if __name__ == "__main__": + +def main(): os.environ.setdefault("DJANGO_SETTINGS_MODULE", "plane.settings.production") try: from django.core.management import execute_from_command_line @@ -24,3 +25,7 @@ if __name__ == "__main__": "forget to activate a virtual environment?" ) from exc execute_from_command_line(sys.argv) + + +if __name__ == "__main__": + main() diff --git a/apps/api/pyproject.toml b/apps/api/pyproject.toml index 428aabba7d..d16b0f772f 100644 --- a/apps/api/pyproject.toml +++ b/apps/api/pyproject.toml @@ -3,6 +3,15 @@ name = "Plane" version = "0.24.0" description = "Open-source project management that unlocks customer value" +[tool.setuptools] +py-modules = ["manage"] + +[tool.setuptools.packages.find] +include = ["plane*"] + +[project.scripts] +plane = "manage:main" + [tool.ruff] # Exclude a variety of commonly ignored directories. exclude = [