2017-02-22 7 views
0

Mit Docker, würde Ich mag eine Umgebung einzurichten, wo ich Änderungen auf lokale Dateien machen, während der Behälter die Dateien dient.Docker/Rails - Zugriff verweigert @ dir_s_mkdir Errno :: EACCESS

Allerdings habe ich den folgenden Fehler wurde immer nach docker-compose run web läuft:

=> Booting WEBrick 
=> Rails 5.0.0.1 application starting in development on http://0.0.0.0:3000 
=> Run `rails server -h` for more startup options 
Exiting 
/usr/local/lib/ruby/2.3.0/fileutils.rb:253:in `mkdir': Permission denied @ dir_s_mkdir - /usr/src/app/tmp (Errno::EACCES) 
     from /usr/local/lib/ruby/2.3.0/fileutils.rb:253:in `fu_mkdir' 
     from /usr/local/lib/ruby/2.3.0/fileutils.rb:227:in `block (2 levels) in mkdir_p' 
     from /usr/local/lib/ruby/2.3.0/fileutils.rb:225:in `reverse_each' 
     from /usr/local/lib/ruby/2.3.0/fileutils.rb:225:in `block in mkdir_p' 
     from /usr/local/lib/ruby/2.3.0/fileutils.rb:211:in `each' 
     from /usr/local/lib/ruby/2.3.0/fileutils.rb:211:in `mkdir_p' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands/server.rb:119:in `block in create_tmp_directories' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands/server.rb:118:in `each' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands/server.rb:118:in `create_tmp_directories' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands/server.rb:75:in `start' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:90:in `block in server' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:85:in `tap' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:85:in `server' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!' 
     from /usr/local/bundle/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in `<top (required)>' 
     from bin/rails:4:in `require' 
     from bin/rails:4:in `<main>' 

Die Laufwerke auf Docker Einstellungen geteilt werden, mein Windows-Konto ist Administrator, die Powershell Ich renne diese Befehle at läuft als Administrator, und der Benutzer des Containers ist root, also kann ich wirklich nicht finden, welche Berechtigung fehlt.

Ich verwende Docker für Windows mit Hyper-v Treiber und die folgende Dockerfile und Docker-compose.yml sind in das Verzeichnis der Anwendung:

Dockerfile

docker-compose.yml

Antwort

0

Das Problem, das ich hatte, war aufgrund einer alten Fehler docker-machine von einer anderen Installation von Docker, habe ich vergessen, es zu dieser Zeit zu löschen und nicht erkannt, dass es immer noch dort auf einer neuen Installation sein würde.

Nach dem Entfernen und Erstellen einer neuen docker-machine, Hinzufügen der virtual switchaccording to official documentation, hatte ich nicht mehr die Erlaubnis Probleme.

1

@Filipe können Sie bitte bestätigen, wenn Ihr Benutzer Schreibzugriff auf das Verzeichnis "." auf Windows? Die Ausführung als Administrator garantiert aufgrund der Samba-Integration keinen vollständigen Lese-/Schreibzugriff auf die gemounteten Volumes.

+0

Dank Roberto, nicht auf dieses Problem speziell, aber wenn Sie ein Volume mit dem Container (auf C:/Benutzer) teilen, musste ich mir diese Berechtigungen geben. Administratorrechte unter Windows sind sehr verwirrend ... –

Verwandte Themen