来自守护程序的错误响应:Dockerfile解析错误第1行:未知指令:#

问题描述 投票:8回答:5

我是码头工人的新手,并试图学习它。我遵循这个教程: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: #

喜欢它不起作用

我不知道为什么它不起作用

docker
5个回答
8
投票

我只是测试了相同,默认情况下VSCode似乎用UTF-16 LE编码保存Dockerfile。

将文件重新保存为UTF-8允许docker build无错误地运行。


5
投票

解决方法是删除dockerfile并使用Notepad而不是Visual Code创建它


2
投票

我的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”]是在它自己的一行。一旦我删除换行符之前一切正常。我假设解析器会忽略它。


0
投票

在运行时,在文件的开头添加一些文本。删除了在终端使用vi并正常工作的那些。


0
投票

我在intellij idea中运行docker compose,通过删除docker父文件夹名称中的数字来解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.