Pourquoi ai-je cette erreur? ERROR: In file './docker-compose.yml', volume 'mariavolume' must be a mapping not a string.
Mon fichier docker-compose est presque identique à celui-ci: https://docs.docker.com/compose/wordpress/
version: '2'
services:
wordpress:
image: wordpress:latest
restart: always
depends_on:
- db
ports:
- 8080:80
environment:
WORDPRESS_DB_PASSWORD: example
WORDPRESS_DB_Host: 3306
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- maria_volume: /var/lib/mysql
volumes:
maria_volume: ~/mariadb
Malheureusement, cette fonctionnalité n'existe pas.
Vous ne pouvez pas mapper un volume de niveau supérieur dans docker-compose.
Voici les options:
Créez un volume en dehors de la composition (avec mappage) et utilisez-le dans votre composition.
volumes:
maria_volume:
external:
name: volume-name
Dans mon cas, cela se produisait car j'avais oublié d'ajouter un :
après le nom du volume.
Au lieu de:
volumes:
- mysqldata:
J'avais tapé:
volumes:
- mysqldata
docker-compose up
m'a donné la même erreur que ci-dessus.
essaye ça:
volumes:
- maria_volume: /var/lib/mysql
volumes:
maria_volume:
external:
name: ~/mariadb
Pour moi cela fonctionne:
Dans # docker_compose.yml:
volumes:
postgres_data: {}
static: { }
Essaye ça:
version: '2'
services:
...
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- ~/mariadb:/var/lib/mysql
Je courais dans le même problème que vous et comme dernier acte de désespoir, j'ai essayé de
volumes:
- maria_volume: /var/lib/mysql
avant
environment:
MYSQL_ROOT_PASSWORD: example
Je ne suis pas sûr du type de magie appliqué ici, mais dans mon cas, cela a fonctionné
Faites le moi savoir!