首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有码头和文件所有权的Rails脚手架

带有码头和文件所有权的Rails脚手架
EN

Stack Overflow用户
提问于 2017-01-13 09:29:25
回答 1查看 1.2K关注 0票数 3

我正在试验Rails和Docker,下面是教程。在构建项目部分中,您可以看到Rails脚手架与

代码语言:javascript
复制
docker-compose run web rails new . --force --database=postgresql --skip-bundle

然后,紧接着:

代码语言:javascript
复制
 sudo chown -R $USER:$USER .

以获得对生成文件的访问,因为Docker将它们作为root创建。

如何避免每次更改权限?假设我想使用以下方法创建简单的迁移文件:

代码语言:javascript
复制
docker-compose run web rails g migration create_users

在这样的每个简单命令之后修改所有权似乎是不切实际的,但在每个教程/源代码中,我发现没有人谈论过它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-13 12:27:48

我发现了同样的问题,对我来说,主要的问题是sublime-text无法编辑root拥有的文件。因此,我的解决方案是使用sublime-text作为根用户,因为我可以轻松地编辑任何项目文件。要在shell中执行此操作,请执行以下操作:

代码语言:javascript
复制
gksu subl

解决了我的问题。希望它解决了你的问题。

更新

好的。我找到了不依赖于任何Ruby编辑器或IDE的解决方案。因此,您需要的是将您当前的ubuntu用户添加到停靠用户组中,因为您可以作为它的用户而不是root运行docker命令。

首先,如果坞组不存在,可能需要添加它(但它现在应该存在)。在shell中执行

代码语言:javascript
复制
sudo groupadd docker

将当前用户添加到停靠组

代码语言:javascript
复制
sudo gpasswd -a ${USER} docker

重新启动停靠守护进程

代码语言:javascript
复制
sudo service docker restart

代码语言:javascript
复制
sudo service docker.io restart

(取决于您的系统)

激活用户组更改。可以执行注销/登录,也可以在shell中执行。

代码语言:javascript
复制
newgrp docker

然后将dockerfile添加到的末尾。

代码语言:javascript
复制
USER <your_user_name>

代码语言:javascript
复制
USER <your_user_id>

现在您可以执行像这样的命令

代码语言:javascript
复制
docker-compose run web rails g migration SomeMigration

没有sudo,而是作为您的当前用户。

由该命令创建的文件将由当前用户拥有,而不是root

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41631302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档