docker - acme.json 的 traefik 权限 777 太开放,请使用 600
问题描述
是的,当我尝试使用 https 运行 traefik 时,我得到了这个。问题是我将目录安装在我的 Win7 机器上,但我无法 chmod 文件。
挂载正在工作,但文件权限已关闭。
看起来像这样:
volumes
- d:/docker/traefikcompose/acme/acme.json:/etc/traefik/acme/acme.json:rw
交易 | time="2018-09-04T12:57:11Z" level=error msg="Error starting provider *acme.Provider: 无法获取 ACME 帐户:/etc/traefik/acme/acme.json 的权限 777 太开放,请使用 600"
如果我删除 acme.json 文件,我会得到:
错误:对于traefik无法启动服务traefik:b'OCI运行时创建失败:container_linux.go:348:启动容器进程导致“process_linux.go:402:容器初始化导致\“rootfs_linux.go:58:安装\\\”/ d/docker/traefikcompose/acme/acme.json\\" 到 rootfs \\"/mnt/sda1/var/lib/docker/aufs/mnt/c84d8644252848bde8f0322bafba3d206513ceb8479eb95aeee0b4cafd4a7251\\" 在\\"/mnt/sda1 /var/lib/docker/aufs/mnt/c84d8644252848bde8f0322bafba3d206513ceb8479eb95aeee0b4cafd4a7251/etc/traefik/acme/acme.json\\\"导致\\\"不是目录\\\"\"":未知:您是否尝试挂载将目录复制到文件中(反之亦然)?检查指定的主机路径是否存在并且是预期的类型'
解决方案
感谢 Cooshals 的帮助,我终于找到了解决方案,
我们必须通过 ssh 进入 virtualbox-machine 并在那里创建文件,然后直接从 docker-compose.yml 中指出它,在这种情况下,我是这样做的:
docker-machine ssh default
touch /var/acme.json
chmod 600 /var/acme.json
然后在我的 docker-compose 中:
volumes:
- /var/:/var/acme.json
最后在 traefik.toml 中:
[acme]
storage = "acme.json"
推荐阅读
- xamarin.forms - Xamarin.Forms:列表变得比列表视图中的项目长
- python - Django嵌套重组
- java - android.app.ActivityManager.AppTask 访问静态类的非静态方法
- r - 上传文件并在闪亮中使用summarytools
- arrays - 如何使用 Laravel 将 JSON 元素保存为数据库中的记录?
- reactjs - 无法读取未定义 npm ERR 的属性“拆分”!代码生命周期
- c# - 按下 Enter 键时,具有 Janus Gridex 的 WinForm 挂起/冻结
- node.js - 配置 PollyJS 以忽略某些请求
- c# - C# 中的冗余存储或 linq 语句?
- html - how to change the font size of the text on my button (HTML/CSS)