【nexus】根据nexus官方安装包构建 ARM nexus镜像

9 篇文章 1 订阅
4 篇文章 0 订阅

一、实验背景

我们使用nexus作为项目中docker镜像库,现在服务器要切ARM,但是nexus官方并不提供ARM版本的docker镜像。

我们知道,nexus本质上是一个java服务,只需要使用ARM架构的基础镜像和ARM架构的jre,然后将nexus的安装包改造一下打进去,就能构建一个ARM架构的nexus 镜像。

鉴于手头没有ARM架构的服务器,我们有x86_64 的CentOS7.5  模拟构建,在ARM服务器上的实现思路是一样!

 

二、实验环境

 

操作系统: CentOS7.5

IP:192.168.1.100

nexus 安装包:nexus-3.16.0-01-unix.tar.gz

jre安装包:jre-8u212-linux-x64.tar.gz

 

 

三、生成镜像构建文件

 

在宿主机

# useradd  nexus

# java -version

 

#  tar  -zxf    nexus-3.16.0-01-unix.tar.gz 

#  vim nexus-3.16.0-01/bin/nexus.rc

 

# ./nexus-3.16.0-01/bin/nexus  start

#  ss -tan  | grep  8081

浏览器访问: http://xx.xx.xx.xx:8081

# ./nexus-3.16.0-01/bin/nexus stop

#  tar -zcf nexus.tar.gz  nexus-3.16.0-01  sonatype-work

 

# cat  Dockerfile

#####################################################

FROM centos:centos7.5.1804

ENV NEXUS_VERSION="3.16.0-01" \

    NEXUS_BASE="/opt/nexus" \

    JRE_VERSION="8u212"

RUN groupadd -g 1000  nexus && \

    useradd -r -u 1000 -g 1000 -m -c "Nexus Repository Manager" -d ${NEXUS_BASE} -s /bin/false nexus && \

    mkdir -p ${NEXUS_BASE}

ADD jre-${JRE_VERSION}-linux-x64.tar.gz /usr/local/

COPY nexus.tar.gz /opt

COPY start-nexus-repository-manager.sh  /opt

RUN chown -R nexus:nexus ${NEXUS_BASE} /opt/start-nexus-repository-manager.sh

VOLUME ${NEXUS_BASE}

EXPOSE  8081 8443

USER nexus

CMD ["sh", "-c", "/opt/start-nexus-repository-manager.sh"]

###################################################################

 

 

# cat start-nexus-repository-manager.sh

###################################

#!/bin/bash

umask 0027

JAVA_HOME="/usr/local/jre1.8.0_212"

PATH=$JAVA_HOME/bin:$PATH

nexus_base="/opt/nexus"

if [ -z "$(ls -A ${nexus_base})" ]; then

  cd /opt

  tar -zxf nexus.tar.gz -C ${nexus_base}

  chown -R nexus:nexus ${nexus_base}

  rm -rf nexus.tar.gz

fi

cd ${nexus_base}/nexus-3.16.0-01/bin

exec ./nexus run

#######################################

 

 

四、构建镜像

 

#  docker build  -f Dockerfile  -t nexus:3.16.0-01 .

 

# mkdir  /opt/nexus 

# chown  -R  1000:1000  /opt/nexus

 

#  docker run  -it  -d   --name  nexus    -v /opt/nexus:/opt/nexus  -p 8081:8081    nexus:3.16.0-01

# docker logs  -f  nexus 

 

# ss  -tan  | grep  8081

#  docker  rm  -f  nexus 

 

五、将nexus服务注册成系统服务

 

#  vim  /etc/systemd/system/nexus.service

#######################################################

[Unit]

Description=Nexus

Requires=docker.service

[Service]

ExecStartPre=-/usr/bin/docker rm -f nexus

ExecStart=/usr/bin/docker run \

    --name nexus \

    --ulimit nofile=65536:65536 \

    -p 8081:8081 \

    -p 2020:2020 \

    -v /opt/nexus:

/opt/nexus \

    nexus:3.16.0-01

ExecStop=/usr/bin/docker stop nexus

LimitNOFILE=65535

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

#######################################################

 

 

# systemctl  daemon-reload

# systemctl  start nexus

# systemctl  enable  nexus

# systemctl  status  nexus

 

浏览器访问:http:/xx.xx.xx.xx:8081

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值