COPY和ADD在Dockerfile中不起作用

米林达

我们有一个dockerfile作为

FROM bitnami/tomcat

EXPOSE 8080
EXPOSE 8009

ADD values.war /opt/bitnami/tomcat/data/

除了values.war文件,似乎从来没有添加过,

docker exec -it values /bin/bash

并检查/opt/bitnami/tomcat/data/未复制战争文件目录。

但是我们尝试了以下操作,并且当我们连接到docker容器时,文件已被复制

FROM bitnami/tomcat

EXPOSE 8080
EXPOSE 8009

RUN mkdir -p /var/app
ADD values.war /var/app

因此,我们认为问题出在目录,因此我们尝试了以下方法

FROM bitnami/tomcat

EXPOSE 8080
EXPOSE 8009

RUN ls -l /opt/bitnami/tomcat/data/

这给了输出

ls: cannot access /opt/bitnami/tomcat/data/: No such file or directory

建立图像时

我们认为问题是因为FROM映像bitnami/tomcat使用该目录作为卷等。尽管我们不确定,但这可能是原始bitnami / tomcat图像的代码。

https://github.com/bitnami/bitnami-docker-tomcat/blob/master/9.0/Dockerfile

关于如何将文件添加到tomcat目录的任何想法

米奇

这是在Dockerfile中定义卷的缺点之一,也是我不建议在其中定义它们的原因当您尝试在构建期间修改卷中的文件时,docker的行为是不确定的,它可能取决于您的docker版本或其他外部变量,因此对于可移植性而言,最好不要这样做。

由于您正在使用来自另一方的图像,因此我将与他们提出一个问题以删除该行(可以将其指向我的博客文章以获取解释)。在此之前,您可以从github检出其构建文件,并更改Dockerfile以构建您自己的基础映像版本。

作为参考,这是关于从docker的文档中在Dockerfile中定义卷的说明之一(说快了3倍):

从Dockerfile内更改卷:如果在声明了卷后有任何构建步骤更改了卷中的数据,则这些更改将被丢弃。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Dockerfile、ARG 和 ENV 不起作用

gcloud auth在dockerfile中不起作用

Javafx .add 和 .remove 在 SelectionModel 中不起作用

condas`source activate virtualenv`在Dockerfile中不起作用

在Dockerfile中运行/ usr / sbin / sshd不起作用

Openssl 命令在 Dockerfile Run 中不起作用

BATCH 脚本在 Dockerfile 构建过程中不起作用

为什么chown在Dockerfile中不起作用?

apt-get在Dockerfile中不起作用

Docker + Ubuntu + Virtualbox:dockerfile中的“ volumes”指令不起作用

使用私有svn + bower在dockerfile中不起作用

Gsutil在Google Compute Engine的Dockerfile中不起作用

$(this)和find在JQuery中不起作用

sed在dockerfile中不起作用,但在容器bash中起作用

Redshift Copy和自动增量功能不起作用

Dockerfile:COPY不起作用(即使他可以找到该文件)

List.Add()在C#中不起作用-吸气剂和吸气剂问题?

为什么/ copy在ILE模块中不起作用

angular.copy()在尖括号{{}}中不起作用

Redshift COPY操作在SQLAlchemy中不起作用

execCommand('copy')在Ajax / XHR回调中不起作用?

Dockerfile运行python命令不起作用

chmod在Dockerfile上不起作用(macbook)

从Dockerfile写入Docker卷不起作用

Dockerfile中的“ COPY”和“ ADD”命令有什么区别?

Java中的Set实现中的add()方法不起作用

stepUp和stepDown在Edge和IE中不起作用

<frameset>和<frame>在Chrome和Firefox中不起作用

Dockerfile中的条件COPY / ADD?