Connecting a frontend to a Docker backend
Building on from NodeJS backend with MySQL database we can add a frontend by adapting the existing Docker Compose files (one for each environment) to accept an additional dependency.
We won’t create a container for the frontend as this is not necessary.
We would add the following to the services
section of the compose file:
services:
...
frontend:
build: ./frontend
container_name: frontend_app
ports:
- "3000:3000"
environment:
- REACT_APP_API_URL=http://localhost:3001
depends_on:
- app
The REACT_APP_API_URL
environment variable tells the frontend application where to find the backend API. This will then be accessbile via process.env
and can be used directly in the frontend, e.g:
fetch(`${process.env.REACT_APP_API_URL}/api/data`)
.then((response) => response.json())
.then((data) => {
// Process the data from the backend API
});