Py学习  »  docker

Dockerfile:无法复制文件

Jessica Chambers • 2 年前 • 551 次点击  

当我的Docker容器启动时,我需要运行以下命令:

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

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

在Dockerfile中,我尝试过:

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命令为什么不复制此文件?

编辑:我的完整Dockerfile

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 .
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130209
 
551 次点击  
文章 [ 1 ]  |  最新文章 2 年前
Tolis Gerodimos
Reply   •   1 楼
Tolis Gerodimos    2 年前

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

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

然后

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