我想使用预定义的配置(少量存储库和虚拟工件)创建nexus 3 docker,以测试我的库。
我无法从docker文件中调用nexus API,因为它需要运行nexus。
我尝试建立nexus 3容器,手动配置它并从容器中创建图像
docker commit ...
创建的新映像,但是当我从中启动新容器时,它不包含我之前所做的所有手动配置。
如何自定义nexus 3图像?
答案 0 :(得分:1)
据我所知,您正在尝试在自包含的Docker映像中创建便携式,独立的自定义nexus3安装,以进行测试/分发。
通过扩展官方nexus3 docker映像来执行此操作将不起作用。看看their Dockerfile:它为/nexus_data
定义了一个卷,目前有no way of removing this from a child image。
这意味着在启动没有任何特定选项的容器时,将为每个新容器创建一个卷。这就是为什么您提交的映像以空白数据开头的原因。最好的办法是在启动容器时为数据卷命名(-v nexus_data:/nexus_data
的选项docker run
),以便重复使用同一卷。但是数据仍将保留在本地docker安装中,而不是映像中。
要执行您想做的事情,您需要在没有数据量的情况下重新创建自己的Docker映像。您可以从上面的官方Dockerfile中做到这一点,只需删除音量行即可。然后,您可以自定义容器并将其提交到包含数据的图像。
答案 1 :(得分:0)
您是否尝试过制作一个以Nexus映像为基础的新Dockerfile?
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