Hoping for some help with a novice please.

My aim here is just to have somewhere I can easily reference where i’m storing the data as I add more and more stacks.

in Portainer (BE 2.19.1) I’ve created a volume called ‘my_data’. When I look at Portainer volumes it has in the mount point ‘/var/lib/docker/volumes/my_data/_data’. So thats where I’ve put some of the config files and other persistent data I want to use.

I want to use the ‘my_data’ Volume in multiple stacks (using docker compose) as the persistent data storage. I thought I’d be able to say in my compose:

volumes:

`- my_data/changedetection/datastore:/datastore`

However this gives the error:

failed to deploy a stack: service "changedetection" refers to undefined volume my_data/changedetection/datastore: invalid compose project

  1. Do I need to have one Volume for every stack so I would just say my_data:/datastore?
  2. Am I better off just ignoring Volumes and putting my persistent files somewhere like /data/my_data/ ?
  3. Am I asking the wrong questions :)

  • Kalindro@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    It would be easier if you posted whole compose.
    Here’s an example for NPM, that’s how external volume (that is already created via other means) should be called:

    version: '3.8'
    
    services:
      app:
        image: 'jc21/nginx-proxy-manager:latest'
        container_name: npm
        restart: unless-stopped
        ports:
          - '80:80'       # Public HTTP Port
          - '443:443'     # Public HTTPS Port
          - '81:81'       # Admin Web Port
        environment:
          DISABLE_IPV6: 'true'
        volumes:
          - npm-data:/data
          - npm-letsencrypt:/etc/letsencrypt
    
    networks:
      npm-network:
        external: true
    
    volumes:
      npm-data:
        external: true
      npm-letsencrypt:
        external: true