devcontainers / cli

A reference implementation for the specification that can create and configure a dev container from a devcontainer.json.
https://containers.dev
MIT License
1.57k stars 220 forks source link

Building a Dockerfile appears to ignore escape directive #632

Open Fydon opened 1 year ago

Fydon commented 1 year ago

I'm on Windows and so prefer the escape character in a Dockerfile to be `. Using the following Dockerfile errors with ERROR: failed to solve: dockerfile parse error on line 8: unknown instruction: apt (did you mean add?): apt (did you mean arg?):

# escape=`

FROM ubuntu:jammy as build

RUN set -eux; `
  apt update;

I tried changing the Dockerfile to use LF instead of CRLF for end of lines but that didn't make a difference. Using the following did work, even with CRLF:

# escape=\

FROM ubuntu:jammy as build

RUN set -eux; \
  apt update;

As well as:

FROM ubuntu:jammy as build

RUN set -eux; apt update;

All of the above Dockerfiles work with Docker CE on Windows. My .devcontainer/devcontainer.json is

{
  "name": "foo",
  "build": {
    "context": "..",
    "dockerfile": "../Dockerfile"
  }
}

I'm using Dev Containers 0.304.0 in VS Code 1.82.0-insider (f1302be1e67e3af5fbeb8bbb2ea784de7bc96150)

samruddhikhandale commented 1 year ago

Hi 👋

Thanks for opening the issue! As Docker CE supports it, we should definitely add support for `. I thought we already do, but I could be mistaken. Looping in @chrmarti for additional thoughts!