前提
ホストOS:Windows(touchコマンドが使えない)
起こったこと
下記イメージを作ろうとしたところ…
Dockerfile
FROM ubuntu:latest
RUN touch hoge
$docker build .
エラーがでました。
failed to solve with frontend dockerfile.v0: failed to create LLB definition: dockerfile parse error line 1: unknown instruction:
��F R O M
原因
Dockerfileのファイルを作成する際に、
WindowsOSのためtouchコマンドが使えず、
新規ファイル作成の際、echoコマンドを使っていましたが、
その使い方がNGでした。
具体的には下記がNG
echo "" > Dockerfile
理屈は
①Dockerfileに空の文字列を挿入する。
②Dockerfileがないので空の新規ファイルが作られる。
なんですが、echoコマンドで出力すると、デフォルトで出力文字の最後が改行されるようで
それが原因なのか微妙(入力して修正するので)ですが、
-nオプションをつけると解決しました。
echo -n > Dockerfile
docker build .
原因曖昧であれなのですが、、
とにかく、echo "" > Dockerfileという書き方は使わないようにします。