如何使用自己定位的文件夹作为docker artifactory容器中的卷



我按照以下说明运行artifactory容器:https://www.jfrog.com/confluence/display/RTF/Running+带有+Docker

它可以工作,artifactory已经启动并运行,但这样我就不能使用我自己的主机目录作为容器卷进行链接。指南上说要使用

-v /var/opt/jfrog/artifactory/etc
-v /var/opt/jfrog/artifactory/data
-v /var/opt/jfrog/artifactory/backup
-v /var/opt/jfrog/artifactory/logs

选项,但通过这种方式,我可以获得卷存储在一些/var/lib/docker/volumes/中。。子文件夹。我想要的是将这些卷安装在主机的/opt/artifactory/中

因此,我尝试以这种方式使用体积映射:

-v /opt/artifactory/etc:/var/opt/jfrog/artifactory/etc
-v /opt/artifactory/data:/var/opt/jfrog/artifactory/data
-v /opt/artifactory/backup:/var/opt/jfrog/artifactory/backup
-v /opt/artifactory/logs:/var/opt/jfrog/artifactory/logs

但是我得到了这个错误:

** ERROR: Artifactory home folder not defined or does not exists at

以前有人试过这个吗?我该怎么办?

谢谢,米歇尔。

中未定义或不存在工件主文件夹

这意味着export ARTIFACTORY_HOME=/var/opt/jfrog/artifactory尚未执行(无论您是否使用卷)。

这也意味着您应该使用-e ARTIFACTORY_HOME=/var/opt/jfrog/artifactory环境选项来执行docker run

另请参阅此支持线程。


OP Mikyjpeg在评论中添加:

我最终发现了问题:
容器的/var/opt/jfrog/artifactory/etc文件夹中有一个文件,用于设置所有环境变量。该文件被卷映射擦除(因为它在我的主机上不存在),在命令启动时会重新创建,但内容不同
因此,我从一个工作容器中复制了这个文件,放入我的主机etc映射卷中,然后再次运行。现在它起作用了。

我曾假设-v选项在任何一种情况下都会创建空卷,但现在我知道这不是真的。

最新更新