Skip to content
Snippets Groups Projects
Commit 761266d3 authored by Benedetto Debora's avatar Benedetto Debora
Browse files

Refactoring: update Dockerfile and README with fastapi integration

parent a1601566
No related branches found
No related tags found
No related merge requests found
...@@ -5,4 +5,4 @@ COPY . /opt/ ...@@ -5,4 +5,4 @@ COPY . /opt/
RUN pip install -r requirements.txt RUN pip install -r requirements.txt
CMD ["uvicorn", "app.main:fast_api", "--host", "0.0.0.0", "--port", "8080"] CMD ["uvicorn", "main:fast_api", "--host", "0.0.0.0", "--port", "5000"]
\ No newline at end of file \ No newline at end of file
...@@ -2,22 +2,35 @@ ...@@ -2,22 +2,35 @@
This repository contains all the required code and templates to run the ICG component, it also contains a Dockerfile that builds the complete image of the ICG with a provided REST API This repository contains all the required code and templates to run the ICG component, it also contains a Dockerfile that builds the complete image of the ICG with a provided REST API
Requirements
-------------
- Docker
Installation Installation
------------- -------------
To have a functional ICG application the following steps can be used. To have a functional ICG application the following steps can be used.
- Download the full content of this repository - Download the full content of this repository
- Build the docker image launching the following command: docker build -t icg-image:0.1 . - Build the docker image launching the following command: `docker build -t icg:0.1 .`
- Create a volume for the container: docker volume create ICG-volume - Run the container: `docker run --name icg -d -p 5000:5000 icg:0.1`
- Run the container: docker run --mount source=ICG-volume,target=/opt -p 5000:5000 icg-image:0.1
User manual Usage
------------ ------------
To use the now running ICG docker container we can call the available REST API. To use the now running ICG docker container we can call the available REST API.
The API is available at http://localhost:5000/ . The API is available at http://localhost:5000/docs. You can try here the endpoint behavior (see input_file_example/nginx/parameters.json as an example body).
Sending a POST request at this endpoint with the indicated json body (see parameters.json as an example body) it will respond with a .tar.gz file containing all the required IaC files.:
Otherwise, send a POST request at this endpoint with the indicated json body (see input_file_example/nginx/parameters.json as an example body) it will respond with a .tar.gz file containing all the required IaC files:
- curl --location --request POST localhost:5000/infrastructure/files --header "Content-Type: application/json" --data "@parameters.json" --output "OutputIaC.tar.gz"
Uninstall
------------
Remove the docker container and the docker image:
- curl --location --request POST localhost:5000/ --header "Content-Type: application/json" --data "@parameters.json" --output "OutputIaC.tar.gz" ```
docker container rm -f icg
docker rmi icg:0.1
```
\ No newline at end of file
Jinja2==3.0.3 Jinja2==3.0.3
flask==2.0.2
PyYAML==6.0 PyYAML==6.0
fastapi~=0.74.1 fastapi~=0.74.1
uvicorn=0.17.5 uvicorn==0.17.5
\ No newline at end of file \ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment