Nano Hash - криптовалюты, майнинг, программирование

для сборки докера требуется ровно 1 аргумент (ы)

Я пытаюсь создать образ из определенного файла Docker и одновременно пометить его; Я следую онлайн-инструкциям дляdocker build , но получаю следующую ошибку:

для сборки докера требуется ровно 1 аргумент (ы)

Моя структура каталогов:

project/
    foo/
    MyDockerfile

Это команда, которую я запускаю:

docker build -f /full/path/to/MyDockerfile -t proj:myapp

Я пробовал различные комбинации приведенной выше команды, но результатом всегда является сообщение об ошибке, указанное выше. Почему это происходит - поскольку я следую тому, что говорится в документации?

01.10.2017

Ответы:


1

Параметр -f изменяет имя Dockerfile (если оно отличается от обычного Dockerfile). Это не для передачи полного пути к docker build. Путь идет в качестве первого аргумента.

Синтаксис:

docker build [PARAMS] PATH

Итак, в вашем случае это должно работать:

docker build -f MyDockerfile -t proj:myapp /full/path/to/

или, если вы находитесь в каталоге проекта, вам просто нужно использовать точку:

docker build -f MyDockerfile -t proj:myapp .

01.10.2017
  • Спасибо за объяснение (+1), как ни странно, я не так понял, когда читал документы - это довольно необычный способ передачи аргументов в команду... 02.10.2017
  • Если вы делаете docker build --help и читаете параметр -f, он говорит следующее: -f, --file string Имя файла Dockerfile (по умолчанию «PATH/Dockerfile») Упоминается PATH. 08.09.2018
  • Я забыл точку в конце. Большое спасибо за дополнительные усилия, чтобы определить это! 11.09.2020
  • Тааак, кто-то действительно старался изо всех сил сделать это запутанным и чрезмерно сложным. А как насчет того, чтобы позволить нам использовать -f для одновременного указания файла и пути? ;-) 24.02.2021
  • Да, я также думал, что, хотя по умолчанию используется PATH/Dockerfile, предоставление -f полностью отменит это. 08.03.2021

  • 2

    сборка докеров.

    НЕ ПРОПУСТИТЕ "ТОЧКУ".

    02.03.2021

    3

    A. Пожалуйста, проголосуйте за ответ Кшиштофа. Я потерялся без его намеков.

    Но Б, мой вклад.

    Я смог использовать полный путь для аргумента --file.

    docker build --build-arg JAR_FILE="/source/java/mystuff/build/libs/mything-1.0.10-SNAPSHOT.jar" --file /full/path/to/MyDockerfile -t proj:myapp .
    

    Я забыл это немногое. в конце.

    D'oh!

    22.09.2020
  • черт возьми. не дает мне спать 12.12.2020

  • 4

    OMG, пожалуйста, прочитайте хорошо объясненный ответ здесь.

    Аргументы -t представляют:

    --tag list --› Имя и, возможно, тег в формате «имя:тег»

    --target string --› Установить целевую стадию сборки для сборки.

    Поэтому команда будет

    docker build -t simply-your-app-name-or-tag-name .  # Don't forget to add a period.
    

    Спасибо всем за большой вклад.

    03.06.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..