J'ai mon docker installé dans Windows. J'essaie d'installer cette application. Il m'a donné le fichier docker-compose.yml suivant:
version: '2'
services:
web:
build:
context: .
dockerfile: Dockerfile-nginx
ports:
- "8085:80"
networks:
- attendizenet
volumes:
- .:/usr/share/nginx/html/attendize
depends_on:
- php
php:
build:
context: .
dockerfile: Dockerfile-php
depends_on:
- db
- maildev
- redis
volumes:
- .:/usr/share/nginx/html/attendize
networks:
- attendizenet
php-worker:
build:
context: .
dockerfile: Dockerfile-php
depends_on:
- db
- maildev
- redis
volumes:
- .:/usr/share/nginx/html/attendize
command: php artisan queue:work --daemon
networks:
- attendizenet
db:
image: postgres
environment:
- POSTGRES_USER=attendize
- POSTGRES_PASSWORD=attendize
- POSTGRES_DB=attendize
ports:
- "5433:5432"
volumes:
- ./docker/pgdata:/var/lib/postgresql/data
networks:
- attendizenet
maildev:
image: djfarrelly/maildev
ports:
- "1080:80"
networks:
- attendizenet
redis:
image: redis
networks:
- attendizenet
networks:
attendizenet:
driver: bridge
Toute l'installation se passe bien, mais le conteneur PostgreSQL s'arrête après avoir indiqué pendant un moment donner l'erreur suivante.
2018-03-07 08:24:47.927 UTC [1] FATAL: data directory "/var/lib/postgresql/data" has wrong ownership
2018-03-07 08:24:47.927 UTC [1] HINT: The server must be started by the user that owns the data directory
Un simple conteneur PostgreSQL de Docker Hub fonctionne sans problème, mais l'erreur se produit lorsque nous essayons d'attacher un volume au conteneur.
Je suis nouveau dans Docker, veuillez donc ignorer l'utilisation incorrecte des termes.
Il s'agit d'un problème documenté avec l'image Postgres Docker sous Windows [ 1 ] [ 2 ] [] [ 4 =]. Actuellement, il ne semble pas y avoir de moyen de monter correctement les répertoires Windows en tant que volumes. Vous pouvez utiliser à la place un volume Docker persistant, par exemple:
db:
image: postgres
environment:
- POSTGRES_USER=attendize
- POSTGRES_PASSWORD=attendize
- POSTGRES_DB=attendize
ports:
- "5433:5432"
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- attendizenet
volumes:
pgdata:
Autres choses qui n'ont pas fonctionné:
environment:
- PGDATA=/var/lib/postgresql/data/mnt
volumes:
- ./pgdata:/var/lib/postgresql/data
volumes:
- type: bind
source: ./pgdata
target: /var/lib/postgresql/data
Plus d'information:
GitHub
Forums Docker
Même j'ai eu le problème que j'ai dû copier le répertoire de données à intervalles réguliers.
docker cp <container-name>:/var/lib/postgresql/data C:/docker/volumes/postgres