利用Docker搭建maven私服

步骤一:安装 Docker 和 Docker Compose

首先,确保您的系统已安装 Docker 和 Docker Compose。推荐用包管理工具安装。避免依赖问题;
特别注意:docker和docker-compose两个版本匹配

步骤二:创建 Docker Compose 文件

一定要注意文件夹权限!!!

  • 自定义目录下创建一个新文件,并将其命名为 docker-compose.yml。在该文件中,我们将定义 Nexus 服务的配置。
    version: "3.3"
    services:
      nexus:
    	image: sonatype/nexus3
    	container_name: nexus3
    	restart: always
    	environment:
    	  - TZ=Asia/Shanghai
    	ports:
    	  - 8081:8081
    	volumes:
    	  - ./data:/nexus-data
    
  • 使用了 Nexus 官方提供的 Docker 镜像 sonatype/nexus3,并将其命名为 nexus3。我们将容器内部的 8081 端口映射到宿主机的 8081 端口上,以便我们能够通过浏览器访问 Nexus 仓库。同时,我们还挂载了一个 本地目录 ./data 到容器的 /nexus-data 目录,以保持 Nexus 的数据持久化。

步骤三:启动 Nexus 服务

  • 保存并关闭 docker-compose.yml 文件后,执行以下命令启动 Nexus 服务:
    docker-compose up -d
    
  • 常见问题:
    • 配置的文件夹权限;
      修改挂载文件夹权限即可
      sudo chmod -R 777 data
      修改完停止容器
      docker-compose down
      再启动即可
      docker-compose up -d
      
  • 提示找不到配置文件
    • 一般是docker和docker-compose两个版本没有匹配上;
    • 配置文件版本号没有匹配上。

步骤四:访问 Nexus 仓库

访问地址: http://localhost:8081/

  • 初始admin 密码在自定义文件夹下admin.password

本地setting.xml配置

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <!-- 设置是否应该为所有项目生成有效模型(pom.xml) -->
  <interactiveMode>true</interactiveMode>

  <!-- 本地仓库位置 -->
  <localRepository>/home/abu/.m2/repository</localRepository>

  <!-- 服务器配置 -->
  <servers>
    <server>
      <id>maven-snapshots</id>
      <username>你的用户名</username>
      <password>你的密码</password>
    </server>
    <server>
      <id>maven-releases</id>
      <username>你的用户名</username>
      <password>你的密码</password>
    </server>
  </servers>

  <mirrors>
    <mirror>
      <id>maven-snapshots</id>
      <name>maven-snapshots</name>
      <url>http://自己的设备ip地址:8081/repository/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

  <!-- 配置 Maven 仓库 -->
  <profiles>
    <profile>
      <id>myprofile</id>
      <repositories>
        <repository>
          <id>maven-snapshots</id>
          <url>http://自己的设备ip地址:8081/repository/maven-snapshots/</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
          </releases>
        </repository>
        <repository>
          <id>maven-releases</id>
          <url>http://自己的设备ip地址:8081/repository/maven-releases/</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
          </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>maven-snapshots</id>
          <url>http://自己的设备ip地址:8081/repository/maven-snapshots/</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
          </releases>
        </pluginRepository>
        <pluginRepository>
          <id>maven-releases</id>
          <url>http://自己的设备ip地址:8081/repository/maven-releases/</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
          </releases>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

  <!-- 激活配置文件 -->
  <activeProfiles>
    <activeProfile>myprofile</activeProfile>
  </activeProfiles>

</settings>

机器重启后通过docker拉起私服

当您的机器重启后,要通过Docker拉起对应的Maven私服服务,您可以使用以下步骤:

  1. 确保Docker服务已启动
    在机器重启后,首先需要确认Docker服务已经启动。您可以通过执行以下命令来启动Docker服务:

    sudo systemctl start docker
    

    或者如果您使用的是systemd,可以使用:

    sudo service docker start
    
  2. 使用Docker命令启动Maven私服容器
    如果您之前已经使用Docker部署了Maven私服,并且设置了容器的重启策略为always,那么Docker会在服务启动时自动拉起所有设置了--restart always的容器。您可以通过以下命令来检查容器的状态:

    docker ps
    

    如果Maven私服容器没有自动启动,您可以使用以下命令手动启动:

    docker start <容器名称或ID>
    

    其中<容器名称或ID>是您之前创建Maven私服容器时指定的名称或容器的ID。如果您使用的是默认设置,可能是nexus或者您自定义的名称。

  3. 检查容器日志
    如果需要检查容器启动过程中的日志,可以使用以下命令:

    docker logs -f <容器名称或ID>
    

    这将显示容器的实时日志输出,有助于诊断启动过程中可能出现的问题。

  4. 访问Maven私服
    一旦容器启动,您可以通过浏览器访问Maven私服的Web界面,通常是http://<宿主机IP>:8081,其中8081是您映射到宿主机的端口号。

以上步骤可以帮助您在机器重启后通过Docker拉起Maven私服服务。如果您之前没有设置容器的重启策略,那么您可能需要手动启动容器,或者重新创建并启动一个新的Maven私服容器,使用类似于以下命令:

docker run -d --name nexus3 -p 8081:8081 --restart always -v /home/nexus/data:/nexus-data sonatype/nexus3

这里-v /home/nexus/data:/nexus-data是将宿主机的目录挂载到容器中,用于数据持久化。

posted @ 2024-12-19 09:51  懒懒初阳  阅读(420)  评论(0)    收藏  举报