docker: для "build" потрібен 1 аргумент. Дивіться розділ "docker build --help"


315

Намагайтесь слідувати інструкціям зі створення зображення докера з веб-сайту докера.

https://docs.docker.com/examples/running_redis_service/

це помилка, яку я отримаю, виконуючи вказівки в документі та користуючись цим Dockerfile

FROM        ubuntu:14.04
RUN         apt-get update && apt-get install -y redis-server
EXPOSE      6379
ENTRYPOINT  ["/usr/bin/redis-server"]


sudo docker build -t myrepo/redis
docker: "build" requires 1 argument. See 'docker build --help'.

Як вирішити?

Відповіді:


657

Вам потрібно додати крапку, наприклад, docker build -t mytag .це означає, що ви використовуєте Dockerfile у локальному каталозі, а якщо ви використовуєте docker 1.5, ви можете вказати Dockerfile в іншому місці, витяг з допомогою докерної збірки-f, --file="" Name of the Dockerfile(Default is 'Dockerfile' at context root)


3
Ви можете, будь ласка, позначити саме команду: "docker build -t mytag." не бачив крапку
nekperu15739

6
@ user2915097 Я не згоден з цим. (крапка) означає локальний каталог, тому що при використанні параметра -f (--file), ставлячи. (крапка) все ще є обов’язковою.
andolsi zied

5
то. конкретизує контекст побудови
andolsi zied

34
Популярність запитань показує, наскільки незрозумілий синтаксис команди docker ... Особисто я думав, що крапка означає лише кінець речення ...
Розчаровано

2
Привіт від docs.docker.com/get-started/part2/#apppy - я був занадто сліпий, щоб побачити це. там теж!
Алекс Янсен

31

Ви скопіювали команду build з іншого місця (веб-сторінки чи якогось іншого файлу)? Спробуйте ввести це з нуля.

Я скопіював команду збірки з підручника AWS і вставив її в свій термінал і отримав цю помилку. Це зводило мене з розуму. Набравши його вручну, воно спрацювало! Придивившись ближче і попередні невдалі команди, я помітив, що "тире" характер був іншим, він був тоншим, довшим символом тире, ніж я отримав, якщо я сам набрав його за допомогою клавіші "мінус / тире".

Погано:

sudo docker build - foo.

Добре:

dodo docker build -t foo.

Ви бачите різницю? .. Вирізати та вставити важко.


22

Використовуйте наступну команду

docker build -t mytag .

Зауважте, що мітаг і крапка мають пробіл між ними. Ця крапка представляє поточний робочий каталог.


17

введіть тут опис зображенняПросто введіть крапку (.) В кінці команди, що включає один пробіл.

приклад:

команда: docker build -t "блимати: v1".

Тут ви можете побачити "blink: v1", а потім пробіл та крапка (.)

Це воно.


16

У моєму випадку ця помилка відбувається в трубопроводі Gitlab CI , коли я проходив кілька змінних ENV Gitlab до docker buildз --build-argпрапорами.

Виявляється, одна з змінних мала пробіл у ній, який спричиняв помилку. Це було важко знайти, оскільки журнали трубопроводу просто показали $VARIABLE_NAME.

Переконайтесь, що цитуйте змінні середовища, щоб простори отримували правильну обробку.

Змінити з:

--build-arg VARIABLE_NAME=$VARIABLE_NAME

до:

--build-arg VARIABLE_NAME="$VARIABLE_NAME"

1
врятуй мій googling;)
Adiii

Це була саме та проблема, яку я мав. Дуже дякую!
фі

10


Вам потрібна точка в кінці ...


Так, наприклад:

$ docker build -t <your username>/node-web-app .

Це трохи приховано, але якщо ти звернеш увагу .на кінець ...


1
Ти врятував мені день. Дякую тобі.
PhatHV

3

Ви можете створити зображення докера з файлу, який називається docker file та названий Dockerfile за замовчуванням. Він має набір команд / інструкцій, які вам потрібні у вашому докерному контейнері. Знизу команда створює зображення з тегом останнього, Dockerfile повинен бути представлений у цьому місці (. Означає присутнім режими)

docker build . -t <image_name>:latest

Ви можете вказати Dockerfile через -f, якщо ім'я файлу не є за замовчуванням (Dockerfile) Вміст файлу одного пакета Docker.

FROM busybox
RUN echo "hello world"

2

У старих версіях Docker, здається, вам потрібно використовувати це замовлення:

docker build -t tag .

і ні

docker build . -t tag


1

Відкрийте PowerShelland і виконайте ці дії. Цей тип помилок є в основному в Windows SO. При використанні збірки команд потрібні параметр і шлях.

Існує такий тип помилок, оскільки ви не вказали шлях до Dockerfile.

Спробуйте це:

C:\Users\Daniele\app> docker build -t friendlyhello C:\Users\Daniele\app\
  1. friendlyhello - це ім'я, яке ви присвоюєте своєму учаснику
  2. C: \ Користувачі \ Daniele \ app \ - це шлях, який відповідає вашому Dockerfile

якщо ви хочете додати тег

C:\Users\Daniele\app> docker build -t friendlyhello:3.0 C:\Users\Daniele\app\

1

Якщо хтось стикається з цією проблемою, намагаючись позначити -tзображення, а також створити його з файлу, який НЕ називається Dockerfile(тобто не використовує просто .шлях), ви можете зробити це так:

docker build -t my_image -f my_dockerfile .

Зауважте, що докер очікує каталог як параметр і ім'я файлу як параметр.


0

Моєю проблемою було те, що Dockerfile.txt потрібно було перетворити у виконуваний файл Unix. Одного разу я зробив цю помилку.

Можливо, вам доведеться видалити .txt частину перед цим, але на mac перейдіть до терміналу і введіть CD в каталог, де ваш Dockerfile і тип

chmod +x "Dockerfile"

І тоді він перетворить ваш файл у виконуваний файл Unix, який потім може бути виконаний командою Docker build.


0

Наступна команда працювала для мене. Файл Docker розміщувався в папці мого додатка-майстра.

docker build -f my-app-master / Dockerfile -t my-app-master.


-4

Формат команди Docker Build

У вашій панелі повноважень: існує такий тип помилок, оскільки ви не вказали шлях до Dockerfile.

Спробуйте це:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt

friendlyhello - це ім'я, яке ви присвоюєте своєму контейнеру та додаєте версію, просто використовуйте : останню

-f C: \ TestDockerApp \ Dockerfile.txt - ви хочете додати тег, оскільки команді зборки потрібен параметр або тег - DockerFile - це текстовий документ, тому явно додайте розширення .txt

** Спробуйте цей формат:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt .**

1
Команда, яку ви подали, повинна вийти з тієї самої помилки. Ви повинні включати контекст збірки як аргумент, часто a .для вказівки поточного каталогу слід надсилати до механізму docker як контекст збірки.
BMitch
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.