Я могу создать Dockerfile, например
docker build -t deepak/ruby .
Но для файла Dockerfile без имени Dockerfile
# DOCKER-VERSION 0.4.8
FROM deepak/ruby
MAINTAINER Deepak Kannan "deepak@example.com"
RUN ./bin/rails s
допустим, это называется, Dockerfile.app
что мы строим с
docker build -t deepak/app Dockerfile.app
тогда я получаю ошибку
Uploading context 0 bytes
Error build: EOF
EOF
docker build --help
есть строка, в которой вы можете найти то, что ищете: -f, --file string Имя Dockerfile (по умолчанию 'PATH / Dockerfile')Ответы:
Обратите внимание на точку
.
в конце обеих команд.Или с тегом:
источник
docker build -f Dockerfile.consumer
выдает ошибку "docker build" требует ровно 1 аргумент. См. Docker build --help. Использование: сборка докеров [ОПЦИИ] ПУТЬ | URL | -.
) в конце приведенной выше команды?.
не обязательная вещь. Команда сборки принимает два аргумента, а именно. путь кDockerfile
& путь кcontext
каталогу. Итак, мы можем сделатьdocker build -t mysupertag -f ./foo/Dockerfile ./foo
Это работает
Документация по сборке Docker
источник
Последний параметр docker build - это путь сборки, когда вы
.
его вводите, это означает, что это путь, по которому вы найдете файлDockerfile
. Когда вы измените его наDockerfile.app
него, он попытается найтиDockerfile.app/Dockerfile
, что неверно.Я не уверен, будет ли это работать, но раньше вы могли это сделать.
Попробуйте это и посмотрите, поможет ли это, если нет, возможно, откройте проблему с докером, чтобы снова добавить эту функцию, или обновите документацию о том, как использовать Dockerfile с другим именем.
Подробнее здесь: http://docs.docker.io/en/latest/commandline/command/build/
источник
docker build - < Dockerfile
не позволит мне ДОБАВИТЬ локальный файл. Но попробовал, и он работаетПопробуйте dockerfeed . Он использует функцию докера для создания контекста через stdin. Я написал сценарий для решения именно вашей проблемы, с которой столкнулся сам.
Чтобы заменить Dockerfile на другой, сделайте это так:
И вуаля. Dockerfeed делает то же самое, что и
docker build
. Он упаковывает исходный код со своим Dockerfile, но позволяет вам заменить старый Dockerfile на нужный. При этом файлы не создаются, источник не изменяется. Сгенерированный tar-архив передается в докер, который, в свою очередь, отправляет его демону докера.Обновление: это был правильный ответ в старые времена, когда
-f
переключателя не было. В докере версии 1.5 эта опция была представлена. Теперь вы можете создать другой Dockerfile следующим образом:источник
Вы также можете добиться этого с помощью docker-compose.
В вашем docker-compose.yml в разделе сборки вы можете указать каталог, в котором вы храните файл dockerfile, и его альтернативное имя, как показано ниже:
докер-сочинять
источник
Предположим, вы успешно установили docker toolbox, включая docker-compose и docker-machine . Это мой docker-compose.yml
И это в Dockerfile
Убедитесь, что эти файлы находятся точно в корневой папке. Когда вы запускаете docker-compose up, вы собираетесь создать образ для Интернета.
источник
Мой случай находится в
/tmp
каталоге, и там много файлов, и докер попробуйте с другими файлами, хотя я передаю-f <Dockerfile.foo>
Самое простое и понятное (для меня) решение - это
dockerfeed
ответы сверху):источник
Пользователь Windows должен попробовать следующую команду:
например :
источник