附加到带有基本映像的docker容器上?

Joh*_*Dui 9 docker

我有一个docker文件,如下所示:

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"]
Run Code Online (Sandbox Code Playgroud)

现在,docker 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
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下命令执行该容器时:

sudo docker exec -it 653a9b287eb6 /bin/bash
Run Code Online (Sandbox Code Playgroud)

它显示以下错误:

rpc error: code = 2 desc = oci runtime error: 
exec failed: exec: "/bin/bash": stat /bin/bash: no such file or directory
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 8

您需要在空的基础映像(SCRATCH)中添加一个外壳,以便对其进行附加。

目前,您的映像仅包含可执行文件,这还远远不够。

问题17896中所述

FROM scratch字面上是一个空的零字节映像/文件系统,您可以在其中添加所有内容。
例如,查看hello-worldwhich,产生的图像总共为860字节。

如果你需要一个壳通过泊坞窗exec来重视它,从开始的小象的图像高山(只具有/bin/sh虽然:你需要apk add bash添加bash,如评论下面通过user2915097)。

  • @JohnDui 是的,就是这个想法。`From alpine:3.4` 而不是 `FROM scratch` (3认同)