Докер не может найти файл - PullRequest
0 голосов
/ 10 декабря 2018

Я получаю сообщение об ошибке при попытке выполнить приведенную ниже команду

 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

/ users уже поделился

enter image description here

Я что-то упустил?

Я следую за статьей Введение в блокчейн

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Михал Хошна ответ точен.Но я бы сохранил структуру папок контейнера как есть.Попробуйте выполнить:

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

Возможно, контейнер ожидает, что что-то произойдет в папке сборки, и вы можете получить другие ошибки при запуске сборки.

0 голосов
/ 10 декабря 2018

В вашей команде:

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: Использование той же структуры папок в контейнере, что и для хоста, хорошо для простоты, но не для уверенности в том, какойпапка, на которую вы ссылаетесь.

Есть целая страница документации докера о томах и монтировании: https://docs.docker.com/storage/volumes/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...