Nexus 3 создает докер с предварительно определенной конфигурацией - PullRequest
1 голос
/ 14 апреля 2019

Я хочу создать докер Nexus 3 с заранее заданной конфигурацией (несколько репозиториев и фиктивных артефактов) для тестирования моей библиотеки.

Я не могу вызвать API nexus из файла докера, потому что он требует запускаnexus.

Я попытался открыть контейнер nexus 3, настроить его вручную и создать образ из контейнера

docker commit ...

новый образ, созданный, но когда я запускаю новый контейнер из него, онне содержит всю мою ручную настройку, которую я делал раньше.

Как я могу настроить образ nexus 3?

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Если я правильно понимаю, вы пытаетесь создать портативную автономную настроенную установку nexus3 в автономном образе докера для тестирования / распространения.

Расширение официального образа докера nexus3 не будет работать. Взгляните на их Dockerfile : он определяет объем для /nexus_data, и в настоящее время нет способа удалить это из дочернего образа .

Это означает, что когда вы запускаете контейнер без каких-либо конкретных опций, для каждого нового контейнера создается том. Вот почему ваше зафиксированное изображение начинается с пустых данных. Лучшее, что вы можете сделать, - это назвать том данных при запуске контейнера (опция -v nexus_data:/nexus_data для docker run), чтобы тот же том использовался повторно. Но данные все равно будут в вашей локальной установке докера, а не в образе.

Чтобы делать то, что вы хотите, вам нужно воссоздать собственный образ докера без объема данных. Вы можете сделать это из приведенного выше официального Dockerfile, просто убрав строку громкости. Затем вы можете настроить и зафиксировать свой контейнер для изображения, которое будет содержать данные.

0 голосов
/ 15 апреля 2019

Вы пытались создать новый Dockerfile, который использует образ Nexus в качестве основы?

FROM sonatype/nexus3
// Add your artifacts here
ADD myfile.txt destination/myfile.txt

docker build -t mynexusimage:latest . с этим изображением в вашем текущем каталоге.

Я сделал это локально, и он работал с docker run -d -p 8081:8081 mynexusimage:latest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...