我是码头工人的新手,并试图学习它。 我遵循本教程:https://docs.docker.com/get-started/part2/#apppy
所以我在Windows上安装了Docker。 创建了3个文件,app.py,Dockefile和requirements.txt
我的docker文件看起来像这样
# Use an official Python runtime as a parent image
FROM python:2.7-slim
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
ADD . /app
# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 80
# Define environment variable
ENV NAME World
CMD ["python", "app.py"]
当我在powershell中运行它时
docker build -t friendlybuild .
但结果它给出了这个:
Error response from daemon: Dockerfile parse error line 1: unknown instruction: #
喜欢它不起作用
我不知道它为什么不起作用
答案 0 :(得分:8)
我刚刚测试了相同的内容,默认情况下VSCode似乎用UTF-16 LE编码保存了Dockerfile。
以UTF-8重新保存文件允许docker build无错误地运行。
答案 1 :(得分:5)
通过删除dockerfile并使用Notepad而不是Visual Code
创建它来解决答案 2 :(得分:1)
我在Dockerfile中有一个额外的换行符。直到我阅读其中一些评论并意识到这可能是一个问题之前,它甚至都没有注意到。本来我的文件是:
FROM openjdk:8
COPY . /usr/src/Main
WORKDIR /usr/src/Main
ENTRYPOINT ["java", "-Xmx700m","-classpath", ".:./resources/:./lib/*",
"org.spark.docker.demo.DockerMultilayerPerceptronClassifier"]
我看到的错误是:
$ docker build -t docker-classifier .
Sending build context to Docker daemon 248.3MB
Error response from daemon: Dockerfile parse error line 5: unknown instruction: "ORG.SPARK.DOCKER.DEMO.DOCKERMULTILAYERPERCEPTRONCLASSIFIER"]
花点时间弄清楚它,直到我阅读了上面的一些评论,并仔细研究了行格式并意识到“ org.spark.docker.demo.DockerMultilayerPerceptronClassifier”本身就行了。一旦我删除了换行符,一切正常。我以为解析器会忽略它。
答案 3 :(得分:0)
在运行时,在文件开头附加一些文本。删除了在终端中使用vi并正常工作的程序。
答案 4 :(得分:0)
我以intellij的想法运行docker compose,通过删除docker父文件夹名称中的数字来解决此问题。
答案 5 :(得分:0)
从Windows执行此操作时,必须确保在为Linux(Dockerfile
)而非Windows(LF
)配置的CRLF
中有换行符。
答案 6 :(得分:0)
我忘了在ENTRYPOINT["java",
中留有空格
应为ENTRYPOINT ["java",
答案 7 :(得分:0)
在使用nano的控制台项目的Google Cloud Platform中,该命令对我有用
1º-nano
2-
# The Dockerfile defines the image's environment
# Import Python runtime and set up working directory
FROM python:2.7-alpine
WORKDIR /app
ADD . /app
# Install any necessary dependencies
RUN pip install -r requirements.txt
# Open port 80 for serving the webpage
EXPOSE 80
# Run app.py when the container launches
CMD ["python", "app.py"]
保存文件...
答案 8 :(得分:0)
在Docker上进行React应用设置时,我遇到了这个问题。
将构建上下文发送到Docker守护程序1.143MB
守护程序的错误响应:Dockerfile解析错误行1:未知指令:+#
这是我解决的方式
问题是我还有一个名为Dockerfile
的文件(大写字母为 D ),其中包含一些说明,并且与原始的dockerfile
(较低 d )。
我通过删除Dockerfile
并运行以下命令来解决此问题:
docker build t myapp:latest .
而是从dockerfile
构建docker映像。
仅此而已。
我希望这会有所帮助
答案 9 :(得分:0)
对于遇到此问题的 Mac 用户:
只需使用 Python IDLE 编辑/创建 Dockerfile 并删除扩展。