Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jperez77775/ProyectoDocker/llms.txt

Use this file to discover all available pages before exploring further.

Day-to-day operation of ProyectoDocker revolves around a small set of docker compose commands. This page covers everything you need to start, stop, and update the three-service stack (database, backend, frontend) and verify that each service is running correctly.

Starting and stopping

Use docker compose from the root of the repository where docker-compose.yml lives.
CommandWhat it does
docker compose up -dStart all services in detached mode. Containers run in the background.
docker compose up -d --pull alwaysStart all services and pull the latest image for each before starting. Use this after pushing updated images.
docker compose downStop and remove all containers. Volumes are preserved, so your database data is safe.
docker compose down -vStop and remove all containers and volumes. All database data is destroyed.
docker compose stopStop running containers without removing them.
docker compose startStart containers that were previously stopped with docker compose stop.
docker compose down -v deletes the mysql_data volume permanently. All CV data stored in the database will be lost. Only run this when you want a clean slate — for example, to re-run init.sql after changing the database schema.
Use docker compose up -d --pull always whenever you’ve pushed a new version of the backend or frontend image to Docker Hub. Without --pull always, Docker Compose reuses the locally cached image even if a newer version exists in the registry.

Checking status

After starting the stack, you can inspect service health and read logs with these commands:
# Show the current state of all containers
docker compose ps

# Print all log output from every service
docker compose logs

# Print log output from the backend service only
docker compose logs backend

# Stream backend logs in real time (Ctrl+C to stop)
docker compose logs -f backend
When the stack is healthy, docker compose ps shows all three containers as running and the database container as healthy. The health check runs mysqladmin ping -h localhost -u root -prootpassword every 5 seconds with up to 10 retries, so MySQL typically reaches healthy within 45 seconds of first startup.

Updating images

When you modify the backend or frontend code, you need to rebuild the image, push it to Docker Hub, and then redeploy the stack. Follow these steps in order: 1. Rebuild the image without cache Run this command from inside the service directory (e.g., backend/ or frontend/):
docker build --no-cache -t docker.io/<username>/perez-backend:v1 .
Replace <username> with your Docker Hub username. The project’s docker-compose.yml uses docker.io/fullstack2026/perez-backend:v1 as the reference image for the backend service. 2. Push the image to Docker Hub
docker push docker.io/<username>/perez-backend:v1
Make sure you’re logged in first (docker login). Repeat this step for the frontend image if you changed the frontend. 3. Redeploy the stack Return to the repository root and pull the updated images:
docker compose up -d --pull always
Docker Compose pulls the newly pushed images and recreates only the containers whose images changed.

Accessing the running services

Once the stack is up and the database container reports healthy, you can reach each service at the following addresses:
ServiceURLNotes
Frontend UIhttp://localhost:3000React application serving the CV interface
Backend JSON APIhttp://localhost:4000/cvReturns the full CV object as JSON
MySQLlocalhost:3306Connect with any MySQL client using root / rootpassword
The backend and frontend ports are mapped directly from the container to the host in docker-compose.yml:
docker-compose.yml
backend:
  ports:
    - "4000:4000"

frontend:
  ports:
    - "3000:3000"

Build docs developers (and LLMs) love