与docker和文件所有权的铁路脚手架
按照本教程,我正在尝试使用Ruby on Rails和Docker。 在构build项目部分您可以看到Rails脚手架运行
docker-compose run web rails new . --force --database=postgresql --skip-bundle
紧接着,
sudo chown -R $USER:$USER .
为了访问生成的文件,因为Docker以root身份创build它们。
我怎样才能省略每次更改权限? 比方说,我想用下面的方法创build简单的迁移文件:
docker-compose run web rails g migration create_users
在这样的每一个简单的命令后面修改所有权似乎是不切实际的,但在每一个教程中我都发现没有人会谈论它。
我已经经历了同样的问题,对我来说主要的问题是sublime-text
不能编辑由拥有的根文件。 所以我的解决scheme是使用sublime-text
作为根,我可以舒适地编辑任何项目文件。 要做到这一点在你的shell执行:
gksu subl
这解决了我的问题。 希望它解决了你的问题。
更新
好。 我find了不依赖于任何Ruby编辑器或IDE的解决scheme。 所以你需要的是将你当前的ubuntu用户添加到docker用户组中,因为你可以以其用户身份运行docker命令,而不是root
。
首先,如果Docker组不存在(如果它不存在),则可能需要添加泊坞窗组。 在你的shell执行
sudo groupadd docker
将您的当前用户添加到docker组
sudo gpasswd -a ${USER} docker
重新启动docker守护进程
sudo service docker restart
要么
sudo service docker.io restart
(取决于你的系统)
激活用户组更改。 要做到这一点,执行LOG OUT / LOG IN或在你的shell
newgrp docker
然后添加到您的dockerfile
USER <your_user_name>
要么
USER <your_user_id>
现在你可以执行像
docker-compose run web rails g migration SomeMigration
没有sudo
但作为您当前的用户。
而这些命令创build的文件将由您当前的用户拥有,而不是root
。