I have a use case to include /bin/sh in a scratch image due to an external project.
Dockerfile
FROM alpine:3.12 as builder
FROM scratch
WORKDIR /go/src/app
COPY --from=builder /bin/sh /bin/sh
COPY --from=builder /lib/ld-musl-x86_64.so.1 /lib/ld-musl-x86_64.so.1
USER 65532
CMD /go/src/app/migrate.linux-amd64 -path /go/src/app/migrations -database "$DB_CONN" -verbose up
Kaniko build command (running locally and mounting cwd)
docker load -i migrate.tar
docker run --rm -it kaniko:local-kaniko /bin/sh
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/bin/sh": stat /bin/sh: no such file or directory: unknown.
docker build -t kaniko:docker-build -f build/Dockerfile.migrations .
docker run --rm -it kaniko:docker-build /bin/sh
/go/src/app $ %
Any insight into this behavior is greatly appreciated.