Dockerfile:无法复制文件

Dockerfile: unable to copy file

当我的 Docker 容器启动时,我需要 运行 这一行:

cp /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2

这两个文件仅在安装了一些软件包后才存在于 Docker 容器中。

在Docker文件中,我试过:

RUN cp /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
COPY /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
ENTRYPOINT ["cp","/lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2"]

并且还创建了一个 bash 脚本,其中包含(除其他外)这一行。我知道脚本有 运行 因为它所做的其他更改存在,但文件没有被复制。

#!/bin/sh

apk add build-base
apk add libc6-compat

cp /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2

然后运行和

RUN ./my_bash_script.sh

但是,当我在 Docker 容器中使用命令行并手动 运行 该行时,它起作用了。

为什么 Dockerfile 命令没有复制这个文件?

编辑:我的完整 Docker文件

FROM golang:alpine
ENV APP_NAME hello-world
ADD env_setup.sh .
RUN chmod +x env_setup.sh
RUN ./env_setup.sh
WORKDIR /home/helloworld
ADD vendor/ ./vendor/
COPY main.go .
COPY go.mod .

可以指定多个资源,但文件和目录的路径将被解释为相对于构建上下文的源

尝试先将文件复制到Dockerfile所在的本地目录

然后

COPY libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2