Error "Omitir archivo de entrada inexistente" al usar solc docker en Windows

Estoy intentando configurar un entorno de compilación local para Solidity en Windows (10).

Una de las opciones recomendadas en los documentos de Solidity es docker.

Superficialmente, la imagen de la ventana acoplable funciona bien:

C:\work\eth>docker run ethereum/solc:stable --version
solc, the solidity compiler commandline interface
Version: 0.4.11+commit.68ef5810.Linux.g++

Pero, no está logrando acceder a ningún archivo.

C:\work\eth>docker run ethereum/solc:stable Coin.sol
Skipping non-existent input file ""Coin.sol""

C:\work\eth>dir Coin.sol

 Directory of C:\work\eth

05/22/2017  02:55 PM               873 Coin.sol
               1 File(s)            873 bytes
               0 Dir(s)  263,229,722,624 bytes free

¿Es esto un problema de la ventana acoplable? ¿Un problema con la imagen de solc? ¿Cómo debo proceder?

Tengo el mismo problema al intentar ejecutar solc desde un complemento maven dentro de Jenkins.

Respuestas (1)

Docker no conoce su sistema de archivos local de forma predeterminada.
Debe vincular su directorio local como un volumen de datos. ( https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume )

En su caso, creo que el comando que está buscando es:

docker run -v c:\work\eth:c:\solidity ethereum/solc:stable Coin.sol

Si desea verificar si Docker puede ver su archivo local, estos dos comandos deberían ayudar:

docker run --entrypoint /bin/pwd -v c:\work\eth:c:\solidity ethereum/solc:stable

docker run --entrypoint /bin/ls -v c:\work\eth:c:\solidity ethereum/solc:stable

(No soy un usuario de Windows y no los he probado en Windows)