社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Dockerfile:无法复制文件

Jessica Chambers • 3 年前 • 1216 次点击  

当我的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
 
1216 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Tolis Gerodimos
Reply   •   1 楼
Tolis Gerodimos    3 年前

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

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

然后

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