2016-10-24 10 views
1

次のように私は、ドッキングウィンドウのファイルを持っている:ベースイメージのスクラッチが付いたドッカーコンテナに取り付けますか?

FROM scratch 

ARG VERSION=NOT_SET 
ENV VERSION $VERSION 

COPY foobar foobar 
COPY foobar-*.yaml /etc/ 
COPY jwt/ /etc/jwt/ 

EXPOSE 8082 

ENTRYPOINT ["./foobar"] 
CMD ["-config", "/etc/foobar-local.yaml"] 

は今、ドッキングウィンドウのPSは以下のことを示しています

CONTAINER ID  IMAGE                COMMAND     CREATED    STATUS    PORTS       NAMES 
653a9b287eb6  7693481.dkr.ecr.us-east-1.amazonaws.com/foobar:0.0.1   "./foobar -config /e" About a minute ago Up About a minute         foobar 

私は、次のコマンドを使用して、このコンテナには、execしようとすると:

sudo docker exec -it 653a9b287eb6 /bin/bash 

次のエラーが表示されます。

rpc error: code = 2 desc = oci runtime error: 
exec failed: exec: "/bin/bash": stat /bin/bash: no such file or directory 

答えて

2

添付するには、空のベースイメージ(SCRATCH)にシェルを追加する必要があります。

現在のところ、イメージには実行可能ファイルのみが含まれていますが、これでは不十分です。

issue 17896

FROM scratch literally is an empty, zero-byte image / filesystem, where you add everything yourself.
See for example, the hello-world which, produces an image that's 860 bytes total.

で述べたように、あなたがドッキングウィンドウの幹部を通じてそれに接続するためのシェルが必要な場合は、しかしのみ/bin/shを持っている(Alpineよう小さなイメージから起動します。あなたは、必要があるでしょうapk add bashbashcommented belowとしてuser2915097と加算するとよい)。

+0

Dockerfileを変更して、アルパインとしてベースイメージを使用する必要がありますか? –

+0

@ジョンデイそれはアイデアです、はい。 'FROM scratch'の代わりに' FROM alpine:3.4'を使用します。 – VonC

+0

alpineではデフォルトのシェルである/ bin/shを使用します。もしbashを使用したいならば、Dockerfileの 'apk add bash'を – user2915097

関連する問題