Tam*_*mpa 255 containers docker
尝试按照从docker网站构建docker镜像的说明进行操作.
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'.
Run Code Online (Sandbox Code Playgroud)
如何解决?
use*_*097 520
你需要添加一个点,例如,docker build -t mytag .这意味着你在本地目录中使用Dockerfile,如果你使用docker 1.5,你可以在其他地方指定一个Dockerfile,从docker build的帮助中提取-f, --file="" Name of the Dockerfile(Default is 'Dockerfile' at context root)
Mic*_*son 26
您是否从其他地方(网页或其他文件)复制了构建命令?尝试从头开始输入.
我从AWS教程复制了一个构建命令,并将其粘贴到我的终端中,并收到此错误.这让我发疯了.用手输入后,它有效!仔细看看我以前失败的命令,我注意到"破折号"字符是不同的,如果我自己使用"减号/破折号"键输入它,它比我得到的更薄,更长的破折号字符.
坏:
sudo docker build -t foo.
好:
sudo docker build -t foo.
你能看出差异吗?剪切和粘贴很难.
Ric*_* P. 20
如果有人在尝试标记-t图像并从未命名的文件Dockerfile(即不只使用.路径)构建它时遇到此问题,您可以这样做:
docker build -t my_image -f my_dockerfile .
请注意,docker 需要一个目录作为参数,文件名作为一个选项。
aru*_*hpj 15
使用以下命令
docker build -t mytag .
Run Code Online (Sandbox Code Playgroud)
请注意,mytag和dot之间有空格.该点代表当前的工作目录.
从命令运行:
sudo docker build -t myrepo/redis
Run Code Online (Sandbox Code Playgroud)
没有传递给docker build命令的“参数”,只有一个标志-t和该标志的值。在 docker 解析该命令的所有标志后,当您运行构建时应该留下一个参数。
该参数就是构建上下文。标准命令包含上下文的尾随点:
sudo docker build -t myrepo/redis .
Run Code Online (Sandbox Code Playgroud)
每个 docker 构建都会向构建服务器发送一个目录。Docker 是一个客户端/服务器应用程序,构建在服务器上运行,而服务器不一定是运行 docker 命令的地方。COPYDocker 使用构建上下文作为步骤中使用的文件的源ADD。当您在当前目录中运行构建时,您将传递 a.作为上下文,也称为当前目录。您可以传递一个完全不同的目录,甚至是 git 存储库,docker 将使用它作为上下文来执行构建,例如:
docker build -t sudobmitch/base:alpine --target alpine-base \
'https://github.com/sudo-bmitch/docker-base.git#main'
Run Code Online (Sandbox Code Playgroud)
有关构建命令的这些选项的更多详细信息,请参阅docker 构建文档。
如果您添加了构建上下文的值(通常是.)并且仍然看到此错误消息,则您可能传递了多个参数。通常,这是由于未能解析标志或传递带有空格且不带引号的字符串。docker 看到多个参数的可能原因包括:
路径或参数周围缺少引号(带空格)(请注意使用可能包含空格的变量)
命令中的破折号不正确:请确保手动键入这些破折号,而不是复制和粘贴
不正确的引号:智能引号在命令行上不起作用,请手动键入而不是复制和粘贴。
不是空白的空白,或者看起来不是空格的空白。
大多数这些都来自拼写错误或从源复制粘贴,修改文本使其看起来更漂亮,从而破坏了它作为命令的使用。
我必须调试此问题的最简单方法是运行不带任何其他标志的命令:
docker build .
Run Code Online (Sandbox Code Playgroud)
一旦工作正常,重新添加标志直到出现错误,然后您就会知道哪个标志被破坏并且需要修复/添加引号或更正破折号等。
例如:
$ docker build -t <your username>/node-web-app .
Run Code Online (Sandbox Code Playgroud)
它有点隐藏,但如果你注意到.最后......
在我的情况下,当我将多个Gitlab env变量传递给docker buildwith --build-arg标志时,此错误发生在Gitlab CI管道中。
原来,其中一个变量中有一个空格导致了错误。由于管道日志仅显示,因此很难找到$VARIABLE_NAME。
确保引用环境变量,以便正确处理空格。
更改自:
--build-arg VARIABLE_NAME=$VARIABLE_NAME
Run Code Online (Sandbox Code Playgroud)
至:
--build-arg VARIABLE_NAME="$VARIABLE_NAME"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
151579 次 |
| 最近记录: |