version: "3.5"
networks:
  proxy:
    external: true
volumes:
  app: {}
  asset: {}
  db: {}
services:
  db:
    image: akilli/postgres
    restart: unless-stopped
    volumes:
      - source: asset
        target: /app
        type: volume
      - source: db
        target: /data
        type: volume
  app:
    image: akilli/cms
    depends_on:
      - db
    restart: unless-stopped
    volumes:
      - source: app
        target: /app
        type: volume
      - source: asset
        target: /data/asset
        type: volume
        volume:
          nocopy: true
  www:
    image: akilli/nginx
    depends_on:
      - db
      - app
    restart: unless-stopped
    labels:
      traefik.enable: "true"
      traefik.port: "80"
      traefik.frontend.rule: "Host: cms.app.loc"
      traefik.docker.network: "proxy"
    networks:
      default: {}
      proxy:
        aliases:
          - cms
    volumes:
      - source: app
        target: /app
        type: volume
        volume:
          nocopy: true
      - source: asset
        target: /data/asset
        type: volume
        volume:
          nocopy: true

version: "3.5"
networks:
  proxy:
    external: true
volumes:
  app: {}
  asset: {}
  db: {}
  tmp: {}
services:
  db:
    image: akilli/postgres
    restart: unless-stopped
    volumes:
      - source: asset
        target: /app
        type: volume
      - source: db
        target: /data
        type: volume
  app:
    image: akilli/cms
    depends_on:
      - db
    restart: unless-stopped
    volumes:
      - source: app
        target: /app
        type: volume
      - source: asset
        target: /data/asset
        type: volume
        volume:
          nocopy: true
      - source: tmp
        target: /tmp
        type: volume
  www:
    image: akilli/nginx
    depends_on:
      - db
      - app
    restart: unless-stopped
    labels:
      traefik.enable: "true"
      traefik.port: "80"
      traefik.frontend.rule: "Host: cms.app.loc"
      traefik.docker.network: "proxy"
    networks:
      default: {}
      proxy:
        aliases:
          - cms
    volumes:
      - source: app
        target: /app
        type: volume
        volume:
          nocopy: true
      - source: asset
        target: /data/asset
        type: volume
        volume:
          nocopy: true

Add tmp volume to share session amongst multiple app containers
Add tmp volume to share session amongst multiple app containers
