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$
如您所见,文件存在
/用户已经共享
我错过了什么吗?
我正在关注文章介绍区块链
解决方案
在你的命令中:
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/
推荐阅读
- sql - 在 MSSQL 中使用 STRING_ESCAPE 时保持回车/换行
- c++ - 使用 QUdpSocket 从特定地址接收数据
- typescript - 打字稿条件为空
- reactjs - 如何删除自动完成上的清除按钮并仅显示文本
- javascript - Can't use jsPDF-AutoTable is not a function since v3.5.13 (jsPDF v2.1.1)
- powershell - 以管理员身份运行时,minikube 中的“Hyper-v 命令必须以管理员身份运行”
- python - 如何在 keras 中创建自定义损失函数?(自定义加权二元交叉熵)
- snowflake-cloud-data-platform - 雪花数超出可表示范围
- firebase - 如何访问从 Firebase 函数生成的 Google Cloud Build 日志文件
- python - 在 Python 中将已分箱的数据分组到不同的箱中