Skip to content

Commit 95938dc

Browse files
authored
Merge pull request #5 from PythonNest/add_docker_file_and_cache
add docker file if db is sqlite (in the future i will add support in …
2 parents 4f3b5a7 + 8fa37f0 commit 95938dc

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

nest/cli/click_handlers.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from nest.common.templates.readme import generate_readme_template
1414
from nest.common.templates.requierments import generate_requirements
1515
from nest.common.templates.entity import generate_entity
16+
from nest.common.templates.dockerfile import generate_dockerfile
1617

1718

1819
def create_file(path: Path, content: str) -> None:
@@ -190,6 +191,20 @@ def create_entity(path: Path, name: str) -> None:
190191
create_file(path, entity_template)
191192

192193

194+
def create_dockerfile(path: Path) -> None:
195+
"""
196+
Create a Dockerfile file at the specified path using a template.
197+
198+
Args:
199+
path (Path): The path to the Dockerfile file.
200+
201+
Returns:
202+
None
203+
"""
204+
dockerfile_template = generate_dockerfile()
205+
create_file(path, dockerfile_template)
206+
207+
193208
def install_requirements(path: Path, db_type: str) -> None:
194209
os.chdir(path)
195210
subprocess.run("python -m venv venv && source venv/bin/activate", shell=True)
@@ -269,6 +284,9 @@ def create_nest_app(name: str, db_type: str = "sqlite"):
269284
print("entity created successfully")
270285
create_module(examples_path / "examples_module.py", "examples")
271286
print("module created successfully")
287+
if db_type == "sqlite":
288+
create_dockerfile(root_path / "Dockerfile")
289+
print("Dockerfile created successfully")
272290

273291
time.sleep(1)
274292
print("Project created successfully")

nest/common/templates/dockerfile.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
def generate_dockerfile() -> str:
2+
template = f"""FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
3+
4+
RUN pip install --upgrade pip
5+
RUN pip install --no-cache-dir -r requirements.txt
6+
7+
CMD ["uvicorn", "app.app:app", "--host", "0.0.0.0", "--port", "80", "--reload"]
8+
"""
9+
return template

nest/common/templates/service.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ def generate_service(controller_name: str) -> str:
77
from src.{controller_name}.{controller_name}_entity import {capitalized_controller_name} as {capitalized_controller_name}Entity
88
from orm_config import config
99
from nest.core.decorators import db_request_handler
10+
from functools import lru_cache
1011
1112
13+
@lru_cache()
1214
class {capitalized_controller_name}Service:
1315
1416
def __init__(self):

0 commit comments

Comments
 (0)