Skip to content

Commit 85d158c

Browse files
authored
Merge pull request #117 from abolfazl8131/master
initialize docker compose template generator
2 parents 13be510 + cd039e0 commit 85d158c

File tree

6 files changed

+64
-2
lines changed

6 files changed

+64
-2
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Hello! It looks like you entered just the letter "M." How can I assist you today?

app/main.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
from app.routes.terraform import *
33
from app.routes.helm import *
44
from app.routes.ansible import *
5-
from app.routes.jcasc import *
5+
from app.routes.jcasc import *
6+
from app.routes.docker import *

app/models/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
from .terraform_models import *
33
from .utils import *
44
from .ansible_models import *
5-
from .jcasc import *
5+
from .jcasc import *
6+
from .compose_models import *

app/models/compose_models.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from typing import List, Optional
2+
from pydantic import BaseModel, validator, ValidationError
3+
4+
class Port(BaseModel):
5+
machine_port:int = 80
6+
container_port:int = 80
7+
8+
class Network(BaseModel):
9+
name:str = 'app_network'
10+
11+
class EnvironmentVariable(BaseModel):
12+
name:str = 'foo'
13+
value:str = "bar"
14+
15+
class Volume(BaseModel):
16+
local_dir: str = './nginx/nginx.conf'
17+
container_dir:str = '/etc/nginx/nginx.conf'
18+
19+
class Build(BaseModel):
20+
context:str
21+
dockerfile:str
22+
class Service(BaseModel):
23+
image:str = 'nginx'
24+
container_name:str = 'web_server'
25+
build: Build | None = None
26+
version:str = 'latest'
27+
volumes:List[Volume]
28+
depends_on:List[str]
29+
ports:List[Port]
30+
networks:List[Network]
31+
environments:List[EnvironmentVariable]
32+
33+
34+
class DockerCompose(BaseModel):
35+
services: List[Service]
36+
network:Network
37+

app/routes/docker.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from app.app_instance import app
2+
from app.gpt_services import gpt_service
3+
from app.services import (write_installation,edit_directory_generator,execute_pythonfile)
4+
from app.models import (DockerCompose,Output)
5+
from app.template_generators.docker.compose import docker_compose_generator
6+
import os
7+
8+
@app.post("/docker-compose/")
9+
async def docker_compose_template(request:DockerCompose) -> Output:
10+
11+
if os.environ.get("TEST"):
12+
return Output(output='output')
13+
generated_prompt = docker_compose_generator(request)
14+
15+
output = gpt_service(generated_prompt)
16+
edit_directory_generator("compose_generator",output)
17+
execute_pythonfile("MyCompose","compose_generator")
18+
return Output(output='output')
19+
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
def docker_compose_generator(input):
2+
prompt = """M"""
3+
return prompt

0 commit comments

Comments
 (0)