2017-01-13 48 views
1

我正在試用跟隨this教程的Ruby on Rails和Docker。在建立項目部分可以看到,Rails的腳手架運行與帶碼頭和文件所有權的導軌腳手架

docker-compose run web rails new . --force --database=postgresql --skip-bundle 

緊接着的:

sudo chown -R $USER:$USER . 

要訪問生成的文件,因爲碼頭工人創建它們作爲

我該如何忽略每次更改權限?比方說,我想用創建簡單的遷移文件:

docker-compose run web rails g migration create_users 

似乎不切實際修改所有權這樣每個簡單命令之後,但在每一個教程/源,我發現這件事沒有人會談。

回答

1

我已經發現了同樣的問題,對我來說主要問題是sublime-text無法編輯root擁有的文件。所以我的解決方案是使用sublime-text作爲根,因爲我可以舒適地編輯任何項目文件。要在您的外殼執行此操作:

gksu subl 

解決了我的問題。希望它解決了你的問題。

修訂

確定。我找到了不依賴於任何Ruby編輯器或IDE的解決方案。因此,您需要將您當前的Ubuntu用戶添加到docker用戶組,因爲您可以以其用戶身份運行docker命令,而不是root

首先,您可能需要添加泊塢羣,如果它不存在(但它現在應該存在)。在你的shell執行

sudo groupadd docker 

添加您的當前用戶泊塢窗組

sudo gpasswd -a ${USER} docker 

重新啓動泊塢窗守護

sudo service docker restart 

sudo service docker.io restart 

(取決於您的系統)

激活用戶組更改。要做到這一點無論是進行註銷/登錄或你的shell

newgrp docker 

然後添加到您的dockerfile

USER <your_user_name> 

USER <your_user_id> 

結束現在你可以執行如下命令:

docker-compose run web rails g migration SomeMigration 

沒有sudo但作爲您當前的用戶。

由該命令創建的文件將由您當前的用戶擁有而不是root

+0

我正在使用RubyMine,但仍然,這個想法看起來不錯,我沒有想過。 –

+0

在我自己的項目中找到並測試了一個不依賴於任何Ruby編輯器或IDE的替代解決方案。請嘗試一下,如果它能幫助你,請不要忘記接受我的回答。 – VAD