尝试执行以下命令时出现错误
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$
如您所见,该文件存在
/用户已共享
我想念什么吗?
我正在关注文章Intro to Blockchain
答案 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
也许容器期望构建文件夹中发生某些事情,并且在运行构建时可能会出现其他错误。