2017-06-29 3 views
0

Ich habe einen lustigen Fehler, wenn ich versuche, einen Docker-Compose auszuführen. Ich habe die VM mehrmals neu installiert, alles ist Update und Installation, aber ich kann nicht eine Compose ausführen.Docker-komponieren Fehler beim Versuch zu starten

$ sudo docker-compose up -d 
Creating network "apache2_default" with the default driver 
Building mysql 
ERROR: Error processing tar file(exit status 1): permission denied 

Meine Docker-composer.yml Datei:

version: '2' 
services: 
    mysql: 
    build: ./mysql 
    environment: 
     MYSQL_ROOT_PASSWORD: pass 
    volumes: 
     - db:/var/lib/mysql 
    php: 
    build: ./php 
    ports: 
     - '80:80' 
    volumes: 
     - ./html:/var/www/html 
    depends_on: 
     - mysql 
volumes: 
    db: 

Ich habe dies in Mac laufen und es funktioniert

Edit:

Dockerfile fot mysql:

FROM mysql:5.7 
COPY ./my.cnf /etc/mysql/conf.d/ 
+0

vielleicht zeigen uns die dockerfile falls vorhanden und die yml Datei – Edwin

+0

Der Build Ihrer 'mysql 'Service schlägt fehl. Bitte geben Sie die entsprechende 'Dockerfile' an. – zigarn

+0

Welches OS ist die VM? Welche Version von Docker? Wie kopieren Sie die 'docker-compose.yml'-Datei und den Code in die VM? Können Sie in der VM die Dateien und ihre Berechtigungen auflisten? –

Antwort

0

Die docker build Der Buildbefehl kann mit einem Berechtigungsfehler fehlschlagen, wenn sich Dateien (oder Ordner) im Buildkontextverzeichnis befinden, die nicht dem aktuellen Benutzer gehören.

Diese Situation tritt auf, wenn Sie ein Volume in einem Hostverzeichnis bereitstellen. Die Dateien in diesem Verzeichnis gehören möglicherweise Root.

Die Lösung ist ziemlich einfach: Erstellen Sie einfach eine .dockerignore Datei mit dem Namen der Verzeichnisse/Dateien, die Sie nicht besitzen und nicht in der Docker-Image-Build benötigen.


Zum Beispiel:

docker run -d -v $(pwd)/data-volume:/var/lib/mysql mysql 

würde ein data-volume Verzeichnis erstellen.

Wenn Sie eine Dockerfile bauen würden, müssten Sie den folgenden Inhalt in Ihrem .dockerignore:

data-volume 
Verwandte Themen