制作AI-VAULT镜像

安装前需要完成AI-VAULT组件镜像制作。本章仅提供镜像制作为例说明,具体可根据用户使用情况修改Dockerfile。

软件包中的Dockerfile仅作为参考,用户需根据示例制作定制镜像。镜像制作完成后,请及时进行安全加固。如修复基础镜像的漏洞、安装第三方依赖导致的漏洞等。

制作镜像

  1. 获取AI-VAULT软件包,请参见准备组件
  2. 以root用户登录,将软件包上传到服务器用户私有目录并解压(如“~”)。
  3. 进入解压目录,执行vi Dockerfile,并参考如下Dockerfile示例内容,按照用户所在组织的安全要求进行相关修改后保存,注意其中提及的AiVault为示例用户名,并确保软件源可用。

    FROM ubuntu:{version} # Ubuntu 18.04/20.04
    RUN useradd -d /home/AiVault -u 9001 -m -s  /usr/sbin/nologin AiVault && \
        usermod root -s /usr/sbin/nologin
    RUN apt update && \
        apt-get install libssl1.1 -y
    WORKDIR /home/AiVault
    COPY --chown=AiVault:AiVault ./ai-vault  /home/AiVault/ai-vault
    COPY --chown=AiVault:AiVault ./lib  /home/AiVault/lib
    RUN mkdir -p /home/AiVault/.ai-vault && \
        chown -R AiVault:AiVault /home/AiVault/.ai-vault &&\
        chmod -R 500 /home/AiVault && \
        chmod -R 700 /home/AiVault/.ai-vault &&\
        chmod 700 /home/AiVault &&\
        echo 'umask 077' >> /etc/profile && \
        echo 'source /etc/profile' >> /home/AiVault/.bashrc
    
    ENV LD_LIBRARY_PATH=/home/AiVault/lib
    
    # using AiVault as default user
    USER AiVault

  4. 执行docker build命令制作镜像。

    docker build --no-cache=true -t 镜像名_系统架构:镜像tag  .

    请勿遗漏命令结尾的“.”

    制作示例如下:
    # docker build --no-cache -t 镜像名_系统架构:镜像tag  .
    Sending build context to Docker daemon  13.32MB
    Step 1/9 : FROM ubuntu:18.04
     ---> 20fffa419e3a
    Step 2/9 : RUN useradd -d /home/AiVault -u 9001 -m -s  /usr/sbin/nologin AiVault &&     usermod root -s /usr/sbin/nologin
     ---> Running in 7fe41c44aafa
    Removing intermediate container 7fe41c44aafa
     ---> da4e3b304240
    Step 3/9 : RUN apt update &&     apt-get install libssl1.1 -y
     ---> Running in e2b021e420ea
    Removing intermediate container e2b021e420ea
     ---> 75a754cbf770
    Step 4/9 : WORKDIR /home/AiVault
     ---> Running in 26a27797833c
    Removing intermediate container 26a27797833c
     ---> 31f2a3dbd20e
    Step 5/9 : COPY --chown=AiVault:AiVault ./ai-vault  /home/AiVault/ai-vault
     ---> 1363eecd287f
    Step 6/9 : COPY --chown=AiVault:AiVault ./lib  /home/AiVault/lib
     ---> 91e49bd13648
    Step 7/9 : RUN mkdir -p /home/AiVault/.ai-vault &&     chown -R AiVault:AiVault /home/AiVault/.ai-vault &&    chmod -R 500 /home/AiVault &&     chmod -R 700 /home/AiVault/.ai-vault &&    chmod 700 /home/AiVault &&    echo 'umask 077' >> /etc/profile &&     echo 'source /etc/profile' >> /home/AiVault/.bashrc
     ---> Running in 69bec3585cc5
    Removing intermediate container 69bec3585cc5
     ---> 11571b54edde
    Step 8/9 : ENV LD_LIBRARY_PATH=/home/AiVault/lib
     ---> Running in 88eef21aa248
    Removing intermediate container 88eef21aa248
     ---> 96ff5fde5dce
    Step 9/9 : USER AiVault
     ---> Running in 7ca7c70bbcb1
    Removing intermediate container 7ca7c70bbcb1
     ---> 197f4e8780ca
    Successfully built 197f4e8780ca
    Successfully tagged ai-vault:v3.0.0

  5. (可选)分发镜像。

    若有多台服务器需要安装该组件,则同一个CPU架构的镜像可以只制作一次,通过用户的私有镜像仓分发到其他计算节点,具体步骤请参考docker相关指令说明。