0

Traefik v1.3.1 Docker CE for Windows:17.06.0-ce-win18 (12627)

我将 /acme 文件夹路由到包含文件 acme.json 的主机卷。随着 Traefik 1.3.1 更新,我注意到 Traefik 陷入无限循环,抱怨“/etc/traefik/acme/acme.json 的权限 755 太开放,请使用 600”。我找到的唯一解决方案是删除 acme.json 并让 Traefik 重新协商证书。不幸的是,如果我需要重新启动容器,我必须再次删除 acme.json,否则我会再次遇到同样的问题!

我的猜测是问题出在映射到 Docker 的 Windows 卷上,但我想知道推荐的解决方法是什么?

4

2 回答 2

0

在尝试让 traefik 在 Docker for Windows 上运行时偶然发现了这个问题......最终通过在 dockerfile 中添加几行来创建 acme.json 并设置权限来使其正常工作。然后,我构建了映像,尽管当我检查 acme.json 文件的权限时,它抛出了“来自 Windows 的 Docker 映像针对非 Windows Docker 主机安全警告”,但它仍然有效!

[chmod600]

我设置了一个 repo 并将其自动构建到 dockerhub 此处以进行进一步测试。

https://hub.docker.com/r/guerillamos/traefik/

https://github.com/guerillamos/traefikwin/blob/master/Dockerfile

构建完成后,我将映像切换到 docker-compose 文件中,根据日志,我对 Cloudflare 的 DNS 挑战就像一个魅力。

我希望这可以帮助别人!

于 2018-09-09T20:19:49.290 回答
0

我可以根据容器特定的部署要求更改共享卷的权限吗?

不,此时,Docker for Windows 不允许您控制(chmod)已部署容器的共享卷上的 Unix 样式权限,而是将权限设置为默认值 0755(用户的读、写、执行权限,为组读取和执行),这是不可配置的。

由于 POSIX 权限检查,Traefik 与常规 Windows 不兼容。它可以在 Linux 的 Windows 子系统中工作,因为它具有 Unix 风格的权限系统。

于 2017-10-09T06:39:47.887 回答