首页 > 解决方案 > 码头工人无法找到文件

问题描述

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

 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$ 

如您所见,文件存在

在此处输入图像描述

/用户已经共享

在此处输入图像描述

我错过了什么吗?

我正在关注文章介绍区块链

标签: docker

解决方案


在你的命令中:

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:在容器中使用与主机相同的文件夹结构有利于简单,但不利于确定您所指的文件夹。

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


推荐阅读