How to mount a docker volume in Azure with docker compose YAML

Viewed 3456

I'm attempting to deploy a PosgreSQL Docker container in Azure. To that end, I created in Azure a storage account and a file share to store a Docker volume.

Also, I created the Docker Azure context and set it as default.

To create the volume, I run:

volume create volpostgres --storage-account mystorageaccount

I can verify that the volume was created with docker volume ls.

ID                            DESCRIPTION
mystorageaccount/volpostgres   Fileshare volpostgres in mystorageaccount storage account

But when I try to deploy with docker compose up, I get

could not find volume source "volpostgres"

This is the YAML file that does not work. How to fix it? how to point to the volume correctly?

version: '3.7'
services:
  postgres:
    image: postgres:13.1
    container_name: cont_postgres
    networks:
      db:
        ipv4_address: 22.225.124.121
    ports:
      - "5432:5432"
    environment:  
      POSTGRES_PASSWORD: xxxxx
    volumes:
      - volpostgres:/var/lib/postgresql/data
networks:
   db:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 22.225.124.121/24
volumes:
  volpostgres:
     name: mystorageaccount/volpostgres
1 Answers

You can follow the steps here. And the volumes part in the docker-compose file needs to be changed into this:

volumes:
  volpostgres:
    driver: azure_file
    driver_opts:
     share_name: myfileshare
     storage_account_name: mystorageaccount
Related