tox-docker icon indicating copy to clipboard operation
tox-docker copied to clipboard

volumes not work on windows

Open Jacobliu8 opened this issue 2 years ago • 2 comments

when I try to start mysql for a test. I try to export the data to my local disk

[docker:mysql] image = mysql:8.0 healthcheck_cmd = mysql -uroot -D information_schema -e "SELECT * FROM plugins LIMIT 1;" healthcheck_interval = 30 healthcheck_timeout = 10 healthcheck_retries = 20 environment = MYSQL_ALLOW_EMPTY_PASSWORD=true ports = 10232:3306/tcp volumes = bind:rw:{toxinidir}/testdata:/var/lib/mysql

but the validation not pass due to the

 parts = volume_line.split(":")
 if len(parts) != 4:
        raise ValueError(f"Volume {volume_line!r} is malformed")

My pc is window system. Maybe a bug for windows because window path will like 'D:\githome\xx\' contains : then the parts len should be 5 rather then 4

Jacobliu8 avatar Jan 12 '22 03:01 Jacobliu8

I don't have a windows machine to test with, but I wonder if using a UNC path might work. Could you try replacing bind:rw:{toxinidir}/testdata:/var/lib/mysql with eg bind:rw:\\.\UNC\LOCALHOST\c$\githome\xx\testdata:/var/lib/mysql (with the correct path that you want)?

If that works ... I'm still not sure what the right fix is here, since {toxinidir} doesn't seem to be giving you a UNC path, but at least that might point us in a working direction...

dcrosta avatar Jan 17 '22 19:01 dcrosta

bind:rw:\.\UNC\LOCALHOST\c$ path does not work, docker.errors.APIError: 500 Server Error for (...) (EXTRA string=is not a valid Windows path)'")

amdokamal avatar Jun 29 '23 16:06 amdokamal