-1

SCRATCH から centos 7 で Docker イメージを構築しようとしています。次の手順を実行しました。

FROM scratch
RUN rpm -ivh https://address/app.rpm
RUN YUM install tools 
...
...
CMD ["rpm","start"]

これを実行した後、コマンド「docker build -t testsid -f ./dockerfile」でこの dockerfile をビルドしようとしました。

今、私は次のエラーが表示されます:

Sending build context to Docker daemon  3.072kB
Step 1/16 : FROM scratch
 --->
Step 2/16 : RUN rpm -ivh https://address/app.rpm
 ---> Running in d25a0a879d9e
OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown

これに関して誰か提案があるかどうか教えてください。?

どんな入力も本当に役に立ちます。

ありがとうございました。

4

1 に答える 1

0

FROM scratch真っ白なイメージからスタート。コンテナー ファイルシステムに存在するのは、 Docker が自動的に提供する/dev/proc、および内のファイルだけです。/etcと言うとrpm、そのコマンドは存在しません。文字列形式のRUNコマンドは でラップされますが、ディレクトリ/bin/sh -c ...はありません。/bin

FROM scratchは、Docker のやや高度な使用法です。静的にリンクされたバイナリや、bare-string と JSON-array の違いなどの概念に慣れている場合はCMD、それを使用して非常に小さな画像を作成できます。最も一般的な用途では、少なくとも何らかのディストリビューションとパッケージ マネージャーを備えたものから始めたいと思うでしょう。

Red Hat のパッケージ管理ツールが必要な場合、最も簡単に開始できる Docker Hub イメージはcentosです。

FROM centos:8 # includes rpm, yum, /bin directory
RUN rpm -ivh https://address/app.rpm
RUN yum install tools
...
于 2020-06-02T10:06:12.357 に答える