我在this教程之后尝试使用Ruby on 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
在像这样的每个简单命令之后修改所有权似乎是不切实际的,但在每个教程/来源中我都没有发现任何人谈论它。
答案 0 :(得分:2)
我已经解决了同样的问题,而我的主要问题是sublime-text
无法编辑root拥有的文件。所以我的解决方案是以sublime-text
为根,我可以轻松编辑任何项目文件。要在shell中执行此操作:
gksu subl
这解决了我的问题。希望它能解决你的问题。
<强>已更新强>
确定。我发现解决方案不依赖于任何Ruby编辑器或IDE。因此,您需要将当前的ubuntu用户添加到docker用户组,因为您可以将docker命令作为其用户运行,而不是root
。
首先,如果它不存在,您可能需要添加docker组(但它现在应该存在)。在你的shell执行
sudo groupadd 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
但是作为您当前的用户。
该命令创建的文件将由您当前的用户拥有,而不是root
。