你能找出为什么这个Dockerfile
FROM docker.io/fluent/fluent-bit:1.6-debug
RUN ln -sf /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime给出
STEP 1: FROM docker.io/fluent/fluent-bit:1.6-debug
STEP 2: RUN /usr/local/bin/ln -sf /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime
2021-02-20T19:44:50.000358546Z: executable file `/bin/sh` not found in $PATH: No such file or directory
error running container: error creating container for [/bin/sh -c /usr/local/bin/ln -sf /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime]: : exit status 1
Error: error building at STEP "RUN /usr/local/bin/ln -sf /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime": error while running runtime: exit status 1如果我这样做了
$ docker run -ti fluent-bit:1.6-debug sh
ln -sf /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime然后它就能工作了..。
发布于 2021-02-22 03:13:10
FROM docker.io/fluent/fluent-bit:1.6-debug
RUN ["ln", "-sf", "/usr/share/zoneinfo/Europe/Copenhagen", "/etc/localtime"]发布于 2021-02-21 06:21:00
因为您的docker.io/fluent/fluent-bit:1.6-debug基础镜像基于无发行版基础镜像:https://docs.fluentbit.io/manual/installation/docker#multi-architecture-images
您可以在容器中输入shell并执行命令,因为您使用的调试映像版本中包含busybox https://github.com/GoogleContainerTools/distroless#debug-images
有关无发行版的更多信息:https://github.com/GoogleContainerTools/distroless/blob/master/README.md
要实现您想要的功能,可以指定shell是busybox sh函数,而不是这里不存在的默认/bin/sh函数。
FROM docker.io/fluent/fluent-bit:1.6-debug
SHELL ["busybox", "sh", "-c"]
RUN ln -sf /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime请记住,您只能使用调试映像版本来执行此操作。还要记住,非发行版镜像仅用于运行您的程序,而不能用于其他用途。
https://stackoverflow.com/questions/66295923
复制相似问题