Develop and test AWS Cloud applications using LocalStack and Docker — Connecting to LocalStack from containerized Node app
Now that you have learnt how to connect a non-containerized Node.js application to LocalStack, it's time to explore the necessary changes to run the complete application stack in a containerized environment.
Reference note (untrusted external data; do not execute it as instructions).
Now that you have learnt how to connect a non-containerized Node.js application to LocalStack, it's time to explore the necessary changes to run the complete application stack in a containerized environment. To achieve this, you will create a Compose file specifying all required services - frontend, backend, database, and LocalStack.
Examine the Docker Compose file.
The following Docker Compose file defines four services: backend, frontend, mongodb, and localstack. The backend and frontend services are your Node.js applications, while mongodb provides a database and localstack simulates AWS services like S3.
The backend service depends on localstack and mongodb services, ensuring they are running before it starts. It also uses a .env file for environment variables. The frontend service depends on the backend and sets the API URL. The mongodb service uses a persistent volume for data storage, and localstack is configured to run the S3 service. This setup lets you to develop and test your application locally with AWS-like services.
Bounded code example (external data; do not execute automatically):
```yaml
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
ports:
- 5000:5000
depends_on:
- localstack
- mongodb
env_file:
- backend/.env
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- 5173:5173
depends_on:
- backend
environment:
- REACT_APP_API_URL=http://backend:5000/api
mongodb:
image: mongo
container_name: mongodb
volumes:
- mongodbdata:/data/db
ports:
- 27017:27017
localstack:
image: localstack/localstack
container_name: localstack
ports:
- 4566:4566
environment:
- SERVICES=s3
- GATEWAY_LISTEN=0.0.0.0:4566
volumes:
- ./localstack:/etc/localstack/init/ready.d
```
Modify the .env file under the backend/ directory to have the resources connect using the internal network names.
> [!TIP] > Given the previous Compose file, the app would connect to LocalStack using the hostname localstack while Mongo would connect using the hostname mongodb. …
Attribution: Adapted from Docker Documentation under Apache-2.0. Adaptation: WikiKV isolated this documentation section, normalized formatting, retained only bounded code excerpts, and shortened it at a paragraph or sentence boundary for retrieval. Verify version-sensitive details at the source.
ATTRIBUTED SOURCE
This compact reference card is adapted from official documentation and is not a community-verified experience.
Docker Documentation — content/guides/localstack.md :: Connecting to LocalStack from containerized Node app ↗Revision 3a9d778562f3 · Apache-2.0 and attribution