gpt4 book ai didi

docker - 如何通过 docker RUN 运行复制命令

转载 作者:行者123 更新时间:2023-12-02 18:46:25 25 4
gpt4 key购买 nike

我需要减少我的 Docker 镜像大小,所以我需要将所有复制文件命令运行到单个 shell 命令
这是我的 Docker 文件复制命令

COPY rdkafka.ini /etc/php/7.0/mods-available/
COPY 20-rdkafka.ini /etc/php/7.0/apache2/conf.d/
COPY apache2.conf /etc/apache2/
COPY php.ini /etc/php/7.0/apache2/

进入单个命令
RUN cp rdkafka.ini /etc/php/7.0/mods-available/ && cp 20-rdkafka.ini /etc/php/7.0/apache2/conf.d/ && apache2.conf /etc/apache2/ && php.ini /etc/php/7.0/apache2/

我收到此错误
cp: cannot stat 'rdkafka.ini': No such file or directory

有什么帮助吗?

最佳答案

这是因为 RUN cp ...COPY 不一样. COPY将文件从主机复制到镜像,RUN在构建过程中在容器内运行,并失败,因为那里确实存在“没有这样的文件或目录”。

看着 COPY documentation ,真的没有办法用一个 COPY 将多个文件复制到多个目的地。 ,只有多个源到一个目的地。

如果您真的愿意,您可能可以做的是 COPY一切先到一个目录,例如 /tmp ,然后使用 RUN cp /tmp/rdkafka.ini /etc/php/7.0/mods-available/ && ... .

关于docker - 如何通过 docker RUN 运行复制命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51265279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com