3.4 KiB
Running the Application with and without Docker
This guide explains how to run the application both locally and via Docker, using the command docker run -d -p 8000:8000 --name dreamcanvas dreamcanvas. It also covers how to test the application via a web browser and cURL.
Running the Application Locally
-
Install Dependencies:
Ensure you have Python and all required dependencies installed. In the root of your project directory, run:pip install -r requirements.txt -
Start the Application:
Run the following command to start the FastAPI server using Uvicorn:uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000 -
Test the Application via Browser:
Open a web browser and navigate tohttp://localhost:8000/docs. This will bring up Swagger UI, where you can interact with the API endpoints. -
Test the Application via cURL:
To test the/generate_images/endpoint, run this cURL command:curl 'http://localhost:8000/generate_images/' \ -H 'Content-Type: application/json' \ --data-raw '{ "positive_prompt": "Pretty woman in her late 20s 4k highly detailed hyperrealistic", "negative_prompt": "Trees low quality blurry watermark", "steps": 25, "width": 512, "height": 512 }' \ --insecure
Running the Application with Docker
You can also run the application inside a Docker container, which ensures a consistent environment for deployment and testing.
1. Build the Docker Image
First, ensure you have Docker installed. Navigate to your project root directory (where the Dockerfile is located), and run the following command to build the Docker image:
docker build -t dreamcanvas .
This command will create a Docker image named dreamcanvas.
2. Run the Docker Container
Once the image is built, you can start the application in detached mode using this command:
docker run -d -p 8000:8000 --name dreamcanvas dreamcanvas
-druns the container in detached mode (in the background).-p 8000:8000maps port 8000 on your host machine to port 8000 inside the Docker container, making the application accessible viahttp://localhost:8000.--name dreamcanvasassigns a name to the running container, making it easier to manage.
3. Test the Application in Browser
Open your web browser and navigate to http://localhost:8000/docs to access Swagger UI. This interface allows you to interact with all the available API endpoints.
4. Test the Application via cURL
To test the /generate_images/ endpoint, use this cURL command:
curl 'http://localhost:8000/generate_images/' \
-H 'Content-Type: application/json' \
--data-raw '{
"positive_prompt": "Pretty woman in her late 20s 4k highly detailed hyperrealistic",
"negative_prompt": "Trees low quality blurry watermark",
"steps": 25,
"width": 512,
"height": 512
}' \
--insecure
Stopping and Managing the Docker Container
Stop the Container
If you need to stop the container, you can run:
docker stop dreamcanvas
Restart the Container
To restart the stopped container, use:
docker start dreamcanvas
Remove the Container
To remove the container when you're done testing, run:
docker rm -f dreamcanvas
This will stop and remove the container completely.