How to create volumes and deploy Postgresql and pgAdmin

mkdir -p /disk1/postgres_data
mkdir -p /disk2/postgres_backup
chmod -R 777 /disk1/postgres_data
chmod -R 777 /disk2/postgres_backup

Docker Swarm deployment manifest

version: "3.8"

services:
  postgres:
    image: postgres:15
    deploy:
      placement:
        constraints:
          - "node.hostname == swarmnode1"
    volumes:
      - /disk1/postgres_data:/var/lib/postgresql/data
      - /disk2/postgres_backup:/backup
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
      POSTGRES_DB: mydatabase
    networks:
      - my_network
    ports:
      - "5432:5432"

  pgadmin:
    image: dpage/pgadmin4
    deploy:
      placement:
        constraints:
          - "node.hostname == swarmnode1"
    volumes:
      - pgadmin_data:/var/lib/pgadmin
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@example.com
      PGADMIN_DEFAULT_PASSWORD: adminpassword
    ports:
      - "7676:80"
    networks:
      - my_network

networks:
  my_network:
    driver: overlay

volumes:
  pgadmin_data: