【问题标题】:Rename file in docker container重命名 docker 容器中的文件
【发布时间】:2016-08-24 09:31:16
【问题描述】:

当我尝试在 redhat 机器上的 docker 容器上运行一个简单脚本时遇到一个奇怪的错误,这是 Docker 文件

From tomcat:7.0.70-jre7
ENV CLIENTNAME geocontact
ADD tomcat-users.xml /usr/local/tomcat/conf/
ADD app.war /usr/local/tomcat/webapps/
COPY app.sh /

入口点 ["/app.sh"]

而 app.sh 是导致问题“仅在 redhat 上”的脚本

#!/bin/bash
set -e
mv /usr/local/tomcat/webapps/app.war /usr/local/tomcat/webapps/client1.war
catalina.sh run

和错误信息:

mv 无法将 '/usr/local/tomcat/webapps/app.war 移动到其自身的子目录 '/usr/local/tomcat/webapps/client1.war'

a screenshot for the error 这仅在redhat上,我在ubuntu和centos上运行相同的图像没有问题。

【问题讨论】:

  • 最好将错误消息复制并粘贴到您的帖子中,而不是重新输入它们。否则就很难确信我们正在研究真正的问题。
  • @OliverCharlesworth 我为输出放了一个截图,希望这会有所帮助
  • 你能显示ls -al /usr/local/tomcat/webapps/吗?
  • @AstraSerg 问题是容器因为这个错误而崩溃,所以我无法附加容器来运行命令
  • @Amine 只需在 app.sh 中添加此命令

标签: linux docker redhat


【解决方案1】:

在您的 Dockerfile 中:ADD fileA fileB。这将在创建图像时将fileA 重命名为fileB

【讨论】:

    【解决方案2】:

    您可以将命令拆分为 2 个命令:

    cp /usr/local/tomcat/webapps/app.war /usr/local/tomcat/webapps/client1.war
    rm /usr/local/tomcat/webapps/app.war
    

    【讨论】:

      【解决方案3】:

      您可以在容器内编辑文件并提交更改而无需构建图像。

      docker commit existing_containername commited_image_name

      然后以 new 为例运行容器

      docker run --name tomcat -td commited_image_name

      【讨论】:

        猜你喜欢
        • 2021-08-20
        • 2021-05-25
        • 1970-01-01
        • 2018-07-16
        • 2020-03-27
        • 1970-01-01
        • 2018-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多