I’m trying to find a way to avoid docker-in-docker for CI purposes using Docker on AWS ECS to build Windows images. Most recent ECS-optimized instances run the following config:
Client: Version: 17.06.2-ee-6 API version: 1.30 Go version: go1.8.3 Git commit: e75fdb8 Built: Mon Nov 27 22:46:09 2017 OS/Arch: windows/amd64 Server: Version: 17.06.2-ee-6 API version: 1.30 (minimum version 1.24) Go version: go1.8.3 Git commit: e75fdb8 Built: Mon Nov 27 22:55:16 2017 OS/Arch: windows/amd64 Experimental: false
I am trying to do the following, given what I’ve seen in various forums and bug trackers:
docker run -v //./pipe/docker_engine://./pipe/docker_engine my-image
with a variety of attempted escape sequences. I have only gotten the following response:
docker: Error response from daemon: invalid bind mount spec "'\\\\.\\\\pipe\\\\docker_engine:\\\\.\\\\pipe\\\\docker_engine'": invalid volume specification: ''\\.\\pipe\\docker_engine:\\.\\pipe\\docker_engine''. See 'docker run --help'.
Am I crazy or doing something wrong? I can see that the pipe exists on the system doing the following:
[System.IO.Directory]::GetFiles("\\.\\pipe\\") | Select-String "docker" \\.\\pipe\\docker_engine"
Moreover I am running as admin so I can’t see this as a permissions issue. Any help here would be great.