【问题标题】:Error response from daemon: Dockerfile parse error line 1: unknown instruction: #来自守护进程的错误响应:Dockerfile 解析错误行 1:未知指令:#
【发布时间】:2018-03-03 20:32:16
【问题描述】:

我是 docker 新手,正在努力学习它。 我正在关注本教程: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


    【解决方案1】:

    我忘记在ENTRYPOINT["java", 中有一个空格

    应该是ENTRYPOINT ["java",

    【讨论】:

      【解决方案2】:

      我刚刚测试过,默认情况下 VSCode 似乎使用 UTF-16 LE 编码保存 Dockerfile。

      将文件重新保存为 UTF-8 允许 docker build 正常运行。

      【讨论】:

        【解决方案3】:

        通过删除 dockerfile 并使用记事本而不是 Visual Code 创建它来解决

        【讨论】:

          【解决方案4】:

          我的 Dockerfile 中有一个额外的换行符。直到我阅读了其中一些 cmets 并意识到这可能是一个问题,我才注意到它。最初我的文件是:

          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"]
          

          我花了一段时间才弄清楚,直到我阅读了上面的一些 cmets 并查看了行格式并意识到“org.spark.docker.demo.DockerMultilayerPerceptronClassifier”] 是它自己的一行。一旦我在它之前删除了换行符,一切正常。我假设解析器会忽略它。

          【讨论】:

            【解决方案5】:

            从 Windows 执行此操作时,我必须确保在我的 Dockerfile 配置为 Linux (LF) 而不是为 Windows (CRLF) 从文本编辑器编辑它时有换行符。

            【讨论】:

              【解决方案6】:

              在使用 nano 的控制台项目中的 Google Cloud Platform 中,该命令为我工作
              1º-纳米
              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"]
              

              保存文件...

              【讨论】:

                【解决方案7】:

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

                【讨论】:

                  【解决方案8】:

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

                  【讨论】:

                    【解决方案9】:

                    我在 Docker 上设置 React 应用程序时遇到了这个问题。

                    向 Docker daemon 1.143MB 发送构建上下文

                    来自守护进程的错误响应:Dockerfile parse error line 1: unknown instruction: +#

                    我是这样解决的

                    问题是我有另一个名为Dockerfile(大写D)的文件,其中包含一些说明,并且与原始dockerfile(小写 d) 在我的项目根目录中。

                    我通过删除Dockerfile 并运行以下命令解决了这个问题:

                    docker build t myapp:latest .
                    

                    改为从 dockerfile 构建 docker 映像。

                    就是这样。

                    我希望这会有所帮助

                    【讨论】:

                      【解决方案10】:

                      对于遇到此问题的 Mac 用户:

                      只需使用 Python IDLE 编辑/创建 Dockerfile 并删除扩展。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2019-12-12
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2023-01-25
                        相关资源
                        最近更新 更多