sed: kann nicht umbenannt werden ./sed6x9apB: Die Verwendung von Docker-Compose mit WordPress-Bildern ist nicht zulässig

2065
AndrewD

WordPress-Container kann nicht gestartet werden, wenn Docker-Compose verwendet wird, wenn bereits vorhandene WordPress-Dateien vorhanden sind, und der folgende Fehler wird abgebrochen:

sed: cannot rename ./sedtpghTB: Operation not permitted 

Ein Fehler tritt nur auf, wenn WordPress-Dateien in einem freigegebenen Ordner der VirtualBox (vboxsf) gehostet werden. Durch die Freigabe des Ordners über SMB / CIFS wird der Fehler vermieden.

Konfiguration:

  • Host: Win 10 (64b)
  • Gast: 3.16.0-4-amd64 (debian_version 8.6) Gast- / Vbox-Version: 5.1.12 r112440 (Qt5.6.2)
  • WordPress-Dateien werden über einen gemeinsam genutzten VirtualBox-Ordner mit freigegeben /media/vmhost

Hier ist die Ausgabe der Docker-Compose-Konfiguration:

 networks: {} services: db: environment: MYSQL_DATABASE: my_db_name MYSQL_PASSWORD: 'MY_ROOT_PASSWORD' MYSQL_ROOT_PASSWORD: 'MY_ROOT_PASSWORD' MYSQL_USER: root image: mysql:5.7 ports: - 3306:3306 restart: never volumes: - db_data:/var/lib/mysql:rw wordpress: depends_on: - db environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: my_db_name WORDPRESS_DB_PASSWORD: 'MY_PASSWORD' WORDPRESS_DB_USER: root image: wordpress:latest ports: - 80:80 restart: never volumes: - /media/vmhost/www/test:/var/www:rw - /media/vmhost/www/test/public_html:/var/www/html:rw version: '2.0' volumes: db_data: {} wp_data: {} 

Wenn ich einen sed auf der vboxsf-Freigabe versuche, erhalte ich einen ähnlichen Fehler, jedoch nur, wenn die Quelldatei schreibgeschützt ist.

echo 'hello' > hello.txt chmod a-w hello.txt sed -i 's/hello/goodbye/' hello.txt 

Error:

sed: cannot rename ./sed6x9apB: Operation not permitted 

Ausgabe von Mount | grep www

 www on /media/vmhost/www type vboxsf (rw,nodev,relatime) 

Wenn ich eine CIFS-Freigabe unter / media / vmhost / www2 verwende, funktioniert alles einwandfrei.

//my_laptop/www on /media/vmhost/www2 type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=vboxsf,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.1.5,file_mode=0777,dir_mode=0777,nounix,serverino,noperm,rsize=61440,wsize=65536,actimeo=1) 
0

1 Antwort auf die Frage

0
AndrewD

Dies scheint ein Fehler bei VirtualBox zu sein, siehe Ticket Nr. 4890 .

Per Frank Antwort:

behoben für Linux-Hosts, jedoch nicht für Windows-Hosts. Im Gegensatz zu Linux, in dem eine Datei entfernt werden kann, wenn das Verzeichnis schreibgeschützt ist, die Datei jedoch schreibgeschützt ist, kann eine schreibgeschützte Datei unter Windows nicht entfernt werden

Dies wirkt sich auf sed aus, da sed eine Kopie der Quelldatei (in diesem Fall wp-config-sample.php) in eine temporäre Datei erstellt und dann versucht, die Ersetzungen vorzunehmen, die von Windows nicht unterstützt werden, da die Kopie auch nur lesbar ist.

Aus irgendeinem Grund ist eine ordnungsgemäße Freigabe von CIFs nicht betroffen.

Problemumgehung 1: Machen Sie die Quelldatei schreibbar und starten Sie den Container erneut.

chmod a+w wp-config-sample.php docker-compose up

Abhilfemaßnahme 2: Verwenden Sie eine CIFS-Freigabe.

  1. Geben Sie auf Ihrem Windows-Computer das Verzeichnis mit Ihren WordPress-Dateien mithilfe der Windows Advanced-Freigabeeigenschaften des Verzeichnisses frei.
  2. Fügen Sie auf Ihrer VirtualBox-VM Folgendes zu / etc / fstab hinzu

    //my_laptop/www /media/vmhost/www cifs username=WINDOWS_USER,password=WINDOWS_USER_PASSWORD,file_mode=0777,dir_mode=0777,iocharset=utf8,noperm,sec=ntlm 0 0 
  3. montieren

    mount -a