opened
youngbupark
username_0
**Description**

I'm using windows swarm cluster with the below setup. 

1. Manager x 1: Ubuntu Linux, Docker 17.05.0-CE
2. Worker x 4 : Windows Server Core 2016 - 17.03.1-ee-3

"docker stack deploy" cannot parse windows file path in compose file, detect it as relative path, and add the current path to the source path. it looks like it is a bug.


`
docker stack deploy --with-registry-auth --compose-file=docker-compose.yml controller
`

docker-compose.xml

`
version: '3'

services:
  controller:
    image: ****.azurecr.io/****_develop_20170620.5
    volumes:
      - C:\secret:C:\secret

    deploy:
      mode: replicated
      replicas: 1
      resources:
        memory: 2048M
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
        window: 120s
      update_config:
        parallelism: 2
        delay: 10s
        failure_action: pause
        monitor: 60s
        max_failure_ratio: 0.3
      placement:
        constraints:
          - node.role == worker
`

**Steps to reproduce the issue:**

1. docker stack deploy --with-registry-auth --compose-file=docker-compose.yml controller

**Describe the results you received:**

docker service inspect controller 

`
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "*******_develop_20170620.5@sha256:f657d1722a5f82f70177c87c4c58f30997ddf43835c77a4d00516ee913d15b2b",
                    "Labels": {
                        "com.docker.stack.namespace": "****"
                    },
                    "Env": [
                        "****=***"
                    ],
                    "Mounts": [
                        {
                            "Type": "bind",
                            "Source": "/home/test/deploy/C:\\secret",
                            "Target": "C:\\secret"
                        }
                    ],
                    "StopGracePeriod": 10000000000,
                    "DNSConfig": {}
                },
`

**Describe the results you expected:**

docker service inspect controller 

`
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "*******_develop_20170620.5@sha256:f657d1722a5f82f70177c87c4c58f30997ddf43835c77a4d00516ee913d15b2b",
                    "Labels": {
                        "com.docker.stack.namespace": "****"
                    },
                    "Env": [
                        "****=***"
                    ],
                    "Mounts": [
                        {
                            "Type": "bind",
                            "Source": "C:\\secret",
                            "Target": "C:\\secret"
                        }
                    ],
                    "StopGracePeriod": 10000000000,
                    "DNSConfig": {}
                },
`

**Additional information you deem important (e.g. issue happens only occasionally):**

**Output of `docker version`:**
Manager Host
`
Client:
 Version:      17.05.0-ce
 API version:  1.29
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:10:54 2017
 OS/Arch:      linux/amd64
 Experimental: false
`

Worker Docker
`
Client:
 Version:      17.03.1-ee-3
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   3fcee33
 Built:        Thu Mar 30 19:31:22 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.03.1-ee-3
 API version:  1.27 (minimum version 1.24)
 Go version:   go1.7.5
 Git commit:   3fcee33
 Built:        Thu Mar 30 19:31:22 2017
 OS/Arch:      windows/amd64
 Experimental: false
`
**Output of `docker info`:**
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 17.05.0-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 15
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: ****
 Is Manager: true
 ClusterID: ****
 Managers: 1
 Nodes: 5
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: 10.80.1.3
 Manager Addresses:
  10.80.1.3:2337
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: ******
runc version: *****
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-31-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.859GiB
Name: ******
ID: BPWL:WKA7:7IAN:C4
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support

**Additional environment details (AWS, VirtualBox, physical, etc.):**
'Docker stack deploy' cannot windows file path format source in volume property of docker-compose config
issue
created
friism
username_1
cc @johnstep
comment
created
simonferquel
username_2
This is a CLI issue currently worked out in https://github.com/docker/cli/pull/966.
Deploying a stack with Windows workloads containing bind mounts currently only work from a Windows CLI.
comment