创建Maven 私服Nexus的docker

    xiaoxiao2023-10-04  174

    我的业务需求:

    业务上要对接db2数据库, 然而该jar包中央仓库没有。本地编译还好,可我们的测试环境和最终服务镜像制作都是在aws上,所以最终决定在aws上创建一个Nexus服务,内外网都可以使用。

    官网下载UNIX版压缩包

    准备需要的环境

    Dockerfilejdk (nexus依赖jdk)下载好的tar.gz包 以上三个文件要在一个文件夹中, Dockerfile 文件内容如下: 1 FROM centos:latest 2 3 MAINTAINER woaidouwentao 4 5 RUN mkdir /Nexus 6 7 COPY nexus-3.16.1-02-unix.tar.gz /Nexus 8 9 COPY jdk1.8.0_101 /Nexus/jdk1.8.0_101 10 11 RUN echo 'export JAVA_HOME=/Nexus/jdk1.8.0_101' >> /etc/profile 12 13 RUN echo 'export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile 14 15 RUN echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile 16 17 RUN tar -zxf /Nexus/nexus-3.16.1-02-unix.tar.gz -C /Nexus 18 19 RUN sed -i 's|# INSTALL4J_JAVA_HOME_OVERRIDE=|INSTALL4J_JAVA_HOME_OVERRIDE=/Nexus/jdk1.8.0_101|' /Nexus/nexus-3.16.1-02/bin/nexus 20 21 WORKDIR /Nexus/nexus-3.16.1-02/bin 22 23 ENTRYPOINT sh nexus start; tailf nexus

    制作镜像

    docker build -t nexus:v3.16.1 . (千万别忽略了最后的点 )查看制作完成的镜像:docker images | grep nex

    创建Volume

    镜像跑起来就是container,万一container挂了我们所有的jar就从这个世界“消失了”所以要对镜像做持久化映射,先创建一个volumedocker volume create nexus_respository (创建名为nexus_respository的volume) 然后就可以不用怕镜像挂掉重启啥都没有了: docker run -d -p 9907:8081 -v nexus_respository:/Nexus/sonatype-work/nexus3/blobs nexus:v3.16.1 /bin/bashnexus 默认端口是8801我做了端口映射到9907, 红色部分是volume的名字和docker内部要持久化的路径,blobs是存储二进制文件的路径。
    最新回复(0)