我正在试验Rails和Docker,下面是这教程。在构建项目部分中,您可以看到Rails脚手架与
docker-compose run web rails new . --force --database=postgresql --skip-bundle然后,紧接着:
sudo chown -R $USER:$USER .以获得对生成文件的访问,因为Docker将它们作为root创建。
如何避免每次更改权限?假设我想使用以下方法创建简单的迁移文件:
docker-compose run web rails g migration create_users在这样的每个简单命令之后修改所有权似乎是不切实际的,但在每个教程/源代码中,我发现没有人谈论过它。
发布于 2017-01-13 12:27:48
我发现了同样的问题,对我来说,主要的问题是sublime-text无法编辑root拥有的文件。因此,我的解决方案是使用sublime-text作为根用户,因为我可以轻松地编辑任何项目文件。要在shell中执行此操作,请执行以下操作:
gksu subl解决了我的问题。希望它解决了你的问题。
更新
好的。我找到了不依赖于任何Ruby编辑器或IDE的解决方案。因此,您需要的是将您当前的ubuntu用户添加到停靠用户组中,因为您可以作为它的用户而不是root运行docker命令。
首先,如果坞组不存在,可能需要添加它(但它现在应该存在)。在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。
https://stackoverflow.com/questions/41631302
复制相似问题