tl;dr:当我的Dockerfile.
我的 Dockerfile 的版本 1:
FROM hello-world:nanoserver-1809
Run Code Online (Sandbox Code Playgroud)
构建命令:
docker build -t hello-world:windows .
Run Code Online (Sandbox Code Playgroud)
输出:
Sending build context to Docker daemon 4.096kB
Step 1/1 : FROM hello-world:nanoserver-1809
---> bb8a46951ebd
Successfully built bb8a46951ebd
Successfully tagged hello-world:windows
Run Code Online (Sandbox Code Playgroud)
--> 这样就可以了!
我的 Dockerfile 的版本 2:
FROM hello-world:nanoserver-1809
WORKDIR tmp
ADD https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs952/gs952w64.exe .
RUN gs952w64.exe /S
Run Code Online (Sandbox Code Playgroud)
构建命令:
docker build -t hello-world:windows .
Run Code Online (Sandbox Code Playgroud)
输出:
Sending build context to Docker daemon 4.096kB
Error response from daemon: Dockerfile parse error line 1: FROM requires either one or three arguments
Run Code Online (Sandbox Code Playgroud)
--> 这真是出乎意料!
老实说,我很困惑。这是怎么回事?如何编写不会产生意外错误的简单 dockerfile?
感谢 David Maze 的评论找到了解决方案。
结果我有Mac行结尾 (CR),这很荒谬,因为我什至没有 Mac。
dos2unix既不想解决unix2dos行尾问题。所以最后我打开了文件nano,并使用 Ctrl+O、Alt+D 以 DOS (CRLF) 行结尾保存它。有了这个,我的Dockerfile工作。
然后我用来dos2unix将行结尾从 CRLF 转换为 LF,该版本也可以工作。
总结一下:
| 归档时间: |
|
| 查看次数: |
11756 次 |
| 最近记录: |