gpt4 book ai didi

docker - 在Dockerfile中提取gz

转载 作者:行者123 更新时间:2023-12-02 20:32:03 28 4
gpt4 key购买 nike

我的目录结构如下。

- app
Dockerfile
- target
- test_app.tar.gz

tar.gz的提取将具有以下内容,
- lib
- conf
- bin

我想提取lib / *文件夹并将其添加到docker镜像中。
FROM docker.hub.com/alpine/jdk1.8:latest  

RUN mkdir -p /service \
/service/app_lib \
/service/lib

COPY target/test_app.tar.gz /service/app_lib/
RUN cd /service/app_lib/
RUN tar -xzf test_app.tar.gz
RUN rm test_app.tar.gz
RUN cd lib
COPY * /service/lib/
RUN rm app_lib

得到以下错误。
Step 5/11 : RUN tar -xzf test_app.tar.gz
---> Running in edde27a1cc60
tar (child): test_app.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

不知道这有什么问题。

最佳答案

RUN cd命令的效果仅在该行中持续存在,在下一行中,您又返回/,因此找不到该文件。使用WORKDIR而不是RUN cd ...,它应该可以正常工作。
或者,您可以将整个内容放入单个RUN命令中,例如

RUN cd /service/app_lib/ && tar -xzf test_app.tar.gz && rm test_app.tar.gz

下一个 RUN cd lib部分同样适用。

https://docs.docker.com/engine/reference/builder/#workdir

关于docker - 在Dockerfile中提取gz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52069375/

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