codeforequity-at / botium-core

The Selenium for Chatbots - Bots Testing Bots
https://www.botium.ai
MIT License
229 stars 64 forks source link

docker-compose in macOS fails to mount a shared folder #50

Closed juananpe closed 6 years ago

juananpe commented 6 years ago

Docker for macOS fails to mount a shared folder for basic bot testing (from the example walkthrough) when Botium is not installed in a subfolder of one of these directories: /Users, /Volumes, /private, /tmp:

botium-ProcessUtils ERROR: for corecreatenewconversation_botium-botframeworkmock_1 Cannot start service botium-botframeworkmock: b'Mounts denied: \r\nThe path /opt/botium/node_modules/botium-core/samples/botframework/botiumwork/core-CreateNewConversation-20180423-122832-5vkmh/botframeworkmock\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.' This is due to Docker for Mac volume mounts behaving differently than the base Docker system. This is mostly because Docker tries to comply with Apple's filesystem sandbox guidelines (as seen in this SO issue)

Briefly: I use to install my devel applications in /opt. So I installed Botium in /opt/botium. But /opt folder is not by default in Docker for macOS allowed shared volume list: /Users, /Volumes, /private, /tmp. Workaround: install Botium in a subfolder of any of those folders.

I think that this issue (event though it is not a bug) should be mentioned in the Wiki for the basic Example Walkthrough.

codeforequity-at commented 6 years ago

Setting the "TEMPDIR" capability should work as well - point it to "/tmp" should work.