2017-02-22 2 views
0

@拒否された許可は、私は、私がローカルファイルに 変更を加えることができ、環境をセットアップしたいと思います。ドッカー/ Railsの - コンテナは言ったファイルを提供しながら、ドッカーでdir_s_mkdirにerrno :: EACCESS

しかし、私はdocker-compose run webを実行した後、次のエラーを取得してきた:

=> 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>' 

ドライブがドッカーセッティング上で共有されている、私のWindowsのアカウントは、私はこれらのコマンドを実行しているのPowerShell、管理者でありますatは管理者として実行されていて、コンテナのユーザーはrootなので、どのパーミッションが不足しているのか本当にわかりません。

私はのHyper-VドライバでWindowsためドッカーを使用していて、次のDockerfileドッキングウィンドウ-compose.ymlは、アプリケーションのディレクトリ内にある:

Dockerfile

# Official Ubuntu image with Ruby installed 
FROM ruby:2.3.0 

# Update package lists and install dependencies 
RUN apt-get update && apt-get install -y \ 
    build-essential \ 
    libpq-dev \ 
    postgresql-client \ 
    nodejs \ 
    sqlite3 \ 
    libqt4-webkit \ 
    libqt4-dev \ 
    xvfb \ 
    && rm -rf /var/lib/apt/lists/* 

# Define where the application will live inside the image 
ENV APP_HOME /usr/src/app 

# Create the application folder 
RUN mkdir -p $APP_HOME 

# Set the working directory inside the image 
WORKDIR $APP_HOME 

# Add Gemfile and install dependencies 
COPY Gemfile* $APP_HOME/ 
RUN bundle install 

# Copy local folder to work directory 
COPY . $APP_HOME 

ドッカー - 組成物。

version: '2' 
services: 
    web: 
    privileged: true 
    build: . 
    command: bundle exec rails server -p 3000 -b '0.0.0.0' 
    volumes: 
     - .:/usr/src/app 
    ports: 
     - "3000:3000" 

答えて

0

問題は、ドッカーの別のインストールで古くなったdocker-machineが原因で、私はその時間を削除するのを忘れていましたが、新しいインストールではまだそこにあることに気づいていませんでした。

新しいdocker-machineを削除して作成した後に、virtual switchaccording to official documentationを追加したところ、私はもう許可の問題はありませんでした。

1

@Filipeあなたのユーザーがディレクトリ "。"への書き込み権限を持っているかどうか確認してください。窓に?管理者として実行しても、sambaの統合のためマウントされたボリュームに対する完全な読み取り/書き込みアクセスは保証されません。

+0

ありがとうRoberto、特にこの問題ではなく、(C:/ Usersの)コンテナとボリュームを共有するとき、私は自分自身にこれらのアクセス許可を与えなければなりませんでした。 Windowsの管理者権限は非常に混乱しています... –

関連する問題