构建从 VSTS 到 Azure-container-service 的 CI/CD 管道 我在安装 traefik.toml 和 docker.sock 文件时遇到了问题。
部署使用 SSH 隧道创建文件夹 /Deploy/ 并复制 docker-compose.yml 和 traefik.toml。文件在那里,容器已经启动。但不由 traefik 处理,因为它看不到容器。
traefik 教程显示我们可以将类似的东西安装在docker-compose.yml:
version: '2'
services:
proxy:
build:
context: .
dockerfile: /Traefik/dockerfile
restart: always
command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
networks:
- internal
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
这在我的 Windows 10 机器上运行得很好,运行 docker 17.09.0-ce
但是当部署到 Azure-Container-Service 时,我收到以下错误:
ERROR: Named volume "\var\run\docker.sock:/var/run/docker.sock:rw" is used in service "proxy" but no declaration was found in the volumes section.
https://github.com/docker/compose/issues/3073 https://github.com/docker/compose/issues/3073选择额外的点 (.) 来表示它是到主机卷的映射。尝试了一下,没有报错,但实际上并没有挂载。
"Mounts": [
{
"Type": "bind",
"Source": "/home/dutchitworks/deploy/.\\var\\run\\docker.sock",
"Destination": "/var/run/docker.sock",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/home/dutchitworks/deploy/.\\dev\\null",
"Destination": "/traefik.toml",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}
],
它添加了 /home/dutchitworks/deploy/。从某处...
欢迎任何如何正确映射 traefik.toml 的想法......