services: app: image: node:krypton-alpine restart: no depends_on: - db working_dir: /home/node/app volumes: - ./app:/home/node/app - rss-data:/home/node/rss environment: DB_USER: myuser DB_PASSWORD: example DB_DATABASE: pathtoglory DB_HOST: db RSS_FILE_PATH: /home/node/rss develop: watch: - path: ./app/server action: sync+restart target: /home/node/app/server command: node --env-file=.env ./index.js networks: - app-network db: image: postgres restart: always environment: POSTGRES_PASSWORD: example POSTGRES_USER: myuser POSTGRES_DB: pathtoglory volumes: - ./postgres:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] interval: 1s timeout: 5s retries: 10 ports: - "5432:5432" networks: - app-network nginx: image: nginx ports: - "8080:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/ssl:/etc/nginx/ssl:ro - ./app/public/:/usr/share/nginx/html:ro - rss-data:/usr/share/nginx/rss:ro develop: watch: - path: ./app/public action: sync+restart target: /usr/share/nginx/html depends_on: - app networks: - app-network networks: app-network: driver: bridge volumes: rss-data: