Docker环境下Rails credentials无法打开编辑的问题求助
Rails Credentials 无法编辑的解决思路
1. 检查编辑器环境变量配置
Rails执行credentials:edit时依赖系统默认编辑器,若未正确配置会直接跳过编辑步骤。
- 临时指定编辑器执行命令:
# 用vim作为编辑器,主机或容器内都可执行 EDITOR=vim rails credentials:edit - 永久配置:
容器的Dockerfile里加:
主机的bash/zsh配置文件(如ENV EDITOR=vim # 同时确保容器安装了vim,Debian/Ubuntu镜像加这句 RUN apt-get update && apt-get install -y vim.bashrc/.zshrc)加:export EDITOR=vim
2. 修正master.key权限
Rails对master.key的权限有严格要求,之前给全部权限可能反而触发问题:
chmod 600 config/master.key
同时确认文件路径必须是config/master.key,没有被放在其他目录。
3. 排查Docker挂载权限映射问题
如果是主机编辑容器内的文件,可能存在权限不匹配:
- 确保容器内
config/credentials.yml.enc和config/master.key的所属用户,和容器运行Rails的用户一致 - 在
docker run或docker-compose.yml中添加user: "$(id -u):$(id -g)",同步主机用户权限再挂载目录
4. 强制重新生成凭证文件(指定编辑器)
之前的重建操作如果没指定编辑器,可能还是会出问题,按以下步骤来:
# 删除现有凭证相关文件 rm config/credentials.yml.enc config/master.key # 指定编辑器重新生成并编辑 EDITOR=vim rails credentials:edit
执行后编辑器会正常打开,编辑完保存退出即可完成加密。
5. 确认是否针对对应环境编辑
如果项目用了多环境credentials(比如credentials/production.yml.enc),要指定环境:
EDITOR=vim rails credentials:edit --environment production
内容的提问来源于stack exchange,提问作者Andrey Agra de Andrade
相关产品推荐
相关产品推荐

