harbur / captain

Captain - Convert your Git workflow to Docker :whale: containers
MIT License
767 stars 51 forks source link

Cannot find Dockerfile on Windows #77

Open ghost opened 6 years ago

ghost commented 6 years ago

Running captain on Windows with or without captain.yml file gives the error API error (500): {"message":"Cannot locate specified Dockerfile: Dockerfile"}.

After some digging into the code, I found that the error is in the go-dockerclient library https://github.com/fsouza/go-dockerclient/issues/589. But since that issue has been open since Sep. 2016 with no movement, I'm wondering if there is a way to fix the issue on captain's end.

As a workaround, I found that using the "escape hatch" code for Circle CI by helps bypass the issue.

dkapanidis commented 6 years ago

We need to wait for the fix upstream, but as you said since the 'escape hatch' is working properly maybe we can focus on that:

The CIRCLECI flag is basically a fix that uses the system's docker binary instead of the internal client library. Maybe we can graduate the flag as something on it's own (e.g. CAPTAIN_USE_DOCKER_BINARY)

Then we can set the flag's default value to be true on CircleCI and Windows at least until the issue is fixed.

ghost commented 6 years ago

Seems like a reasonable solution until they fix in the upstream. Thanks.

ghost commented 6 years ago

@spiddy Looks like they fixed the issue upstream https://github.com/fsouza/go-dockerclient/commit/fcb9d66987b5c50ac4e0c7d68181354eb294675f.

I did a Windows build of Captain using the newest version of the library and it fixed this issue.