Node JS Stack

The example below demonstrates a MEAN stack sample docker-compose.yml with the pre-defined Sidecar.
docker-compose.yml
# MEAN stack sample docker-compose file
version: "3"
services:
ui:
build:
context: ./ui
dockerfile: Dockerfile.dev
ports:
- 4200:4200
container_name: mean-ui
networks:
- mean-stack-net
volumes:
- ./ui/src:/usr/app/src
- ./ui/public:/usr/app/public
depends_on:
- api
stdin_open: true
tty: true
api:
build:
context: ./api
dockerfile: Dockerfile.dev
ports:
- 3080:3080
container_name: mean-api
networks:
- mean-stack-net
volumes:
- ./api/src:/usr/app/src
depends_on:
- db
db:
image: mongo
ports:
- 27017:27017
container_name: mongo-db
networks:
- mean-stack-net
volumes:
- mongo-data:/data/db
sidecar:
image: industryapps.azurecr.io/service-discovery-sidecar
container_name: { my-apps-name-sidecar }
restart: always
environment:
NODE_ENV: production
DEPLOYMENT_MODE: public
EUREKA_INSTANCE_IP: { IP }
EUREKA_INSTANCE_PORT: { PORT }
EUREKA_INSTANCE_APP: { app-code }
EUREKA_INSTANCE_HOST_NAME: { my-app-domain }/
EUREKA_INSTANCE_HOME_PAGE_URL: https://<your_domain>/{APPCODE}
EUREKA_HOST: servicediscovery.uat.industryapps.net
EUREKA_PORT: 443
networks:
mean-stack-net:
driver: bridge
volumes:
mongo-data:
driver: local
Inside the docker-compose.yml file, add the necessary information which is tagged with curly braces ' { } '.
  • IP -> The IP of the web service which you are running, such as on AWS EC2 Ubuntu, Lightsail instance or Azure Web services as an example.
  • PORT -> The port which the app client-side is served at (e.g. Port 80).
  • APPCODE -> Navigate to Developer dashboard > Applications > {App Name} > App Data, the Application code will be available there.
  • HOSTNAME -> Can be found on the Developer dashboard, the boilerplate is the hostname of the application: https://<your_domain>/{APPCODE}
If the application container is pushed onto IndustryApps, the HOSTNAME is the Application ID.