gpt4 book ai didi

docker - 构建Docker镜像时无法操作文件和目录

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

在Dockerfile中,我有这个:

FROM jboss/base-jdk:8

ENV WILDFLY_VERSION 10.1.0.Final
ENV JBOSS_HOME /opt/jboss/wildfly
ENV config $JBOSS_HOME/wildfly-10.1.0.Final/domain/configuration
ENV master_address 192.168.56.10
ENV tmp /tmp/wildfly-10.1.0.Final/domain/configuration

COPY wildfly-10.1.0.Final.tar.gz /tmp/wildfly-10.1.0.Final.tar.gz
RUN cd /tmp/
RUN tar xf /tmp/wildfly-10.1.0.Final.tar.gz -C /tmp/

RUN sed -i -e 's/noed_name/$HOSTNAME/g' $tmp/host.xml
RUN sed -i -e 's/host_master/$master_address/g' $tmp/host.xml
RUN sed -i -e 's/secret_value/$secret/g' $tmp/host.xml

RUN mv /tmp/wildfly-10.1.0.Final $JBOSS_HOME/
RUN rm /tmp/wildfly-10.1.0.Final.tar.gz

RUN secret=$(echo $HOSTNAME | base64 )

ENV LAUNCH_JBOSS_IN_BACKGROUND true

EXPOSE 8330
EXPOSE 9999

CMD ["/opt/jboss/wildfly/wildfly-10.1.0.Final/bin/domain.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]

错误:无法删除 /tmp/wildfly-10.1.0.Final下的evry文件和目录
 mv: cannot remove '/tmp/wildfly-10.1.0.Final/welcome-content/wildfly.css': No such file or directory
...
The command '/bin/sh -c mv /tmp/wildfly-10.1.0.Final $JBOSS_HOME/' returned a non-zero code: 1

PS:在无法运行 tar之前,该命令将返回 No such a file or directory,直到我切换到tmp文件夹(也是 sed命令)。

最佳答案

在我的机器上,我没有遇到您显示的问题。我有这个:

Step 14/18 : RUN rm /tmp/wildfly-10.1.0.Final.tar.gz
---> Running in c4a839a8bf8b
rm: cannot remove '/tmp/wildfly-10.1.0.Final.tar.gz': Operation not permitted

我能够用适当的用户修复 rm周围的问题:
...
USER root
RUN rm /tmp/wildfly-10.1.0.Final.tar.gz
USER jboss
...

我从这里下载了wildfly:
http://download.jboss.org/wildfly/10.1.0.Final/wildfly-10.1.0.Final.tar.gz

然后,您的Dockerfile变为:
FROM jboss/base-jdk:8

ENV WILDFLY_VERSION 10.1.0.Final
ENV JBOSS_HOME /opt/jboss/wildfly
ENV config $JBOSS_HOME/wildfly-10.1.0.Final/domain/configuration
ENV master_address 192.168.56.10
ENV tmp /tmp/wildfly-10.1.0.Final/domain/configuration

COPY wildfly-10.1.0.Final.tar.gz /tmp/wildfly-10.1.0.Final.tar.gz
RUN cd /tmp/
RUN tar xf /tmp/wildfly-10.1.0.Final.tar.gz -C /tmp/

RUN sed -i -e 's/noed_name/$HOSTNAME/g' $tmp/host.xml
RUN sed -i -e 's/host_master/$master_address/g' $tmp/host.xml
RUN sed -i -e 's/secret_value/$secret/g' $tmp/host.xml

RUN mv /tmp/wildfly-10.1.0.Final $JBOSS_HOME/

USER root
RUN rm /tmp/wildfly-10.1.0.Final.tar.gz
USER jboss

RUN secret=$(echo $HOSTNAME | base64 )

ENV LAUNCH_JBOSS_IN_BACKGROUND true

EXPOSE 8330
EXPOSE 9999

CMD ["/opt/jboss/wildfly/wildfly-10.1.0.Final/bin/domain.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]

工作正常:
$ docker build .
..
..
..
Step 21/21 : CMD /opt/jboss/wildfly/wildfly-10.1.0.Final/bin/domain.sh -b 0.0.0.0 -bmanagement 0.0.0.0
---> Running in 06a9043977bc
---> ab4b6a623f3f
Removing intermediate container 06a9043977bc
Successfully built ab4b6a623f3f

您可以再次尝试丢弃以前的检查: docker build . --no-cache

关于docker - 构建Docker镜像时无法操作文件和目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44996813/

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