デーモンからのエラー応答: Dockerfile 解析エラー 不明なフラグ: mount 質問する

デーモンからのエラー応答: Dockerfile 解析エラー 不明なフラグ: mount 質問する

前回の質問があります(Docker 不明フラグ --mount) は、古いバージョンの Docker を実行しているために同じエラーに直面しています。最新バージョンの Docker を実行しています。

私は次のものを持っていますDockerfile:

FROM continuumio/miniconda3

RUN --mount=type=ssh pip install git+ssh://[email protected]/myrepo/myproject.git@develop
RUN conda install numpy
...

によるドキュメンテーション、単に を実行できるはずですdocker build --ssh default .。しかし、次のエラーが表示されます。

Sending build context to Docker daemon  2.048kB
Error response from daemon: Dockerfile parse error line 3: Unknown flag: mount

出力docker version:

Client: Docker Engine - Community
 Version:           18.09.2
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        6247962
 Built:             Sun Feb 10 04:12:39 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       6247962
  Built:            Sun Feb 10 04:13:06 2019
  OS/Arch:          linux/amd64
  Experimental:     true

プライベート SSH 認証情報を公開せずに Docker イメージをビルドしたいのですが、これがサポートされている方法のようです。この問題の原因について何か考えはありますか?

ベストアンサー1

要約

Dockerファイル

# syntax=docker/dockerfile:experimental
FROM continuumio/miniconda3

RUN --mount=type=ssh pip install git+ssh://[email protected]/myrepo/myproject.git@develop
RUN conda install numpy
...

注記:最初の行のコメントは必要なブードゥー

次に、次のコマンドで Docker イメージをビルドします。

DOCKER_BUILDKIT=1 docker build --ssh default -t my_image .

これにより、--mountオプションRUNDockerfile 内のディレクティブ用。


長い答え

ドキュメントに記載されている通りここSSH転送dockerイメージのビルドは、ビルドキットバックエンド:

外部実装機能

この機能は、ビルドキットバックエンド。

Dockerビルドは、キャッシュマウント、ビルドシークレット、SSH転送などの実験的な機能をサポートしています。これらは、構文ディレクティブを使用してビルダーの外部実装を使用することで有効になります。これらの機能について詳しくは、BuildKitリポジトリのドキュメントを参照してください

これにはドッカー 18.09(またはそれ以降)docker buildで、コマンドをDOCKER_BUILDKIT=1環境変数を設定し、Dockerファイルを次のように起動します。魔法のコメント: # syntax=docker/dockerfile:experimental.

また、以下の編集や追加も可能です/etc/docker/daemon.json:

{
    "experimental" : false,
    "debug" : true,
    "features": {
        "buildkit" : true
    }
}

おすすめ記事