泊坞窗无法找到文件

时间:2018-12-10 18:37:07

标签: docker

尝试执行以下命令时出现错误

 docker run --rm -v /home/docker:/build ethereum/solc:stable /build/TransactionFee.sol --bin --abi --optimize -o /build

错误是

  

找不到“ /Users/amidala/projects/TransactionFee.sol”。

该文件已存在:

amidalas-MacBook-Pro:projects amidala$ ls -ltr build/ docker/ TransactionFee.sol
-rwxr-xr-x  1 amidala  staff  730 Dec 10 23:46 TransactionFee.sol

docker/:

build/:
amidalas-MacBook-Pro:projects amidala$ docker run --rm -v /Users/amidala/projects/docker:/Users/amidala/projects/build ethereum/solc:stable /Users/amidala/projects/TransactionFee.sol --bin --abi --optimize -o /Users/amidala/projects/build
"/Users/amidala/projects/TransactionFee.sol" is not found.
amidalas-MacBook-Pro:projects amidala$ 

如您所见,该文件存在

enter image description here

/用户已共享

enter image description here

我想念什么吗?

我正在关注文章Intro to Blockchain

2 个答案:

答案 0 :(得分:1)

在您的命令中:

docker run --rm \
    -v /User/amidala/projects/docker:/Users/amidala/projects/build \
    etherun/solc:stable \
    /User/amidala/projects/TransactionFee.sol \
    --bin --abi --optimize -o /Users/amidala/projects/build

您告诉docker将本地文件夹/User/amidala/projects/docker挂载到容器文件夹/Users/amidala/projects/build (即-v参数)。因此,容器内的文件夹/Users/amidala/projects中只有docker文件夹,仅此而已。没有TransactionFee.sol文件。

您可能想将/User/amidala/projects文件夹安装到容器/User/amidala/projects上。因此,整个projects文件夹都可用于容器。

docker run --rm \
    -v /User/amidala/projects:/User/amidala/projects \
    etherun/solc:stable \
    /User/amidala/projects/TransactionFee.sol \
    --bin --abi --optimize -o /Users/amidala/projects/build

PS:在容器中使用与io相同的文件夹结构对主机有利于简化,但不利于确定要引用的文件夹。

关于卷和挂载的整个docker文档页面:https://docs.docker.com/storage/volumes/

答案 1 :(得分:1)

MichalHošna的答案很准确。但是我会保持容器文件夹结构不变。尝试运行:

docker run --rm -v /Users/amidala/projects/docker:/build ethereum/solc:stable /build/TransactionFee.sol --bin --abi --optimize -o /build

也许容器期望构建文件夹中发生某些事情,并且在运行构建时可能会出现其他错误。