我们要运行引导程序默认值artifactory.config.xml
和security.import.xml
文件来预定义我们的用户和存储库。
我们还想使用持久存储,特别是 PVC,在容器重启之间持久保存工件。
根据他们的文档,您可以通过将配置文件放入其中来设置额外的配置,并将artifactory_extra_config
它们复制到$ARTIFACTORY_HOME/etc
容器启动时的目录中。但是,Artifactory OSS 似乎并非如此。
根据Helm 图表:
Bootstrapping Artifactory
IMPORTANT: Bootstrapping Artifactory needs license. Pass license as shown in above section.
文档还提到在目录中放置artifactory.config.import.xml
和允许引导。security.import.xml
$ARTIFACTORY_HOME/etc
我们从 Artifactory-oss:6.1.0 基础镜像构建了一个自定义 docker 镜像,并简单地将两个配置文件复制到该$ARTIFACTORY_HOME/etc
目录,但附加 PVC/var/opt/jfrog/artifactory
似乎会覆盖配置,导致引导失败。
我发现 Helm 图表将一个包含引导配置文件的 ConfigMap 挂载到一个/bootstrap/
卷上,并将它们复制到/artifactory_extra_conf
命令中lifecycle.postStart
。这似乎也不起作用。
我注意到ENV
Artifactory PRO基础映像包含ARTIFACTORY_EXTRA_CONF=/artifactory_extra_conf
而Artifactory OSS不包含。
我还尝试了一些实验,将自定义映像中的配置文件复制到其他目录并使用 复制加载卷initContainers
,但到目前为止,我尝试过的任何尝试都无法让我引导 Arrtifactory OSS 并使用安装在/var/opt/jfrog/artifactory
.
我在 Artifactory 的 Dockerfile 中指出,/var/opt/jfrog/artifactory
子目录实际上链接到/opt/jfrog/artifactory
基础映像中的相应目录。