Можно ли загрузить образ Artifactory-OSS Docker с помощью Kubernetes Deployment и PVC? - PullRequest
0 голосов
/ 17 октября 2018

Мы хотим запустить загрузочные файлы по умолчанию 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 и просто скопировали два файла конфигурации вкаталог $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 ANDиспользуйте постоянный том, смонтированный в /var/opt/jfrog/artifactory.

. В Dockerfile for Artifactory я отметил, что подкаталоги /var/opt/jfrog/artifactory фактически связаны с соответствующими каталогами /opt/jfrog/artifactory в базовом образе.

1 Ответ

0 голосов
/ 01 ноября 2018

Нашим решением было изменить их /entrypoint-artifactory.sh и создать собственное изображение.

Сначала мы добавили новую функцию copyExtraConf() в /etnrypoint-artifactory.sh

copyExtraConf () {
    logger "Copying from artifactory_extra_conf"
    chown ${ARTIFACTORY_USER_NAME}:${ARTIFACTORY_USER_NAME} /artifactory_extra_conf/*
    cp -pv /artifactory_extra_conf/* ${ARTIFACTORY_HOME}/etc/
}

Затем мы вызвалиэто после того, как мы настроили каталоги и пользователей для предотвращения ошибок владельца подключенного тома:

printDockerFileLocation
checkULimits
checkMounts
setupDataDirs
setupArtUser

# CUSTOM:START - do this after setupDataDirs and setupArtUser so we can chown and copy our files.
copyExtraConf
# CUSTOM:END

setAccessCreds
setMasterKey
setupPermissions
setDBType
addExtraJavaArgs

Dockerfile:

# Dockerfile
#
# NOTE:
# entrypoint-artifactory.sh is based on the one from artifactory-oss:6.1.0
# When changing versions, be sure to compare entrypoint-artifactory-ta.sh to entrypoint-artifactory.sh
FROM docker.bintray.io/jfrog/artifactory-oss:6.1.0

COPY entrypoint-artifactory.sh /entrypoint-artifactory.sh
RUN chmod +x /entrypoint-artifactory.sh

ENTRYPOINT ["/entrypoint-artifactory.sh"]

COPY configs/artifactory.config.import.xml /artifactory_extra_conf/artifactory.config.import.xml
COPY configs/security.import.xml /artifactory_extra_conf/security.import.xml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...