基于Dockerfile部署ohpm-repo私仓
=========================

Dockerfile是构建Docker镜像的文本文件，其中包含了构建镜像的命令和说明，可以实现如下功能：

*   指定基础镜像。
*   创建项目目录。
*   修改config.yaml配置。
*   设置环境变量。
*   创建用户，设置文件权限。
*   运行install命令，更新环境变量。
*   运行start命令，启动私仓服务。

本文档介绍在Linux系统中如何使用Docker命令搭建ohpm-repo私仓。

**环境准备**

1.  下载[Docker镜像](https://www.docker.com/)，并进行环境搭建。
2.  下载ohpm-repo工具包，将下载的工具包重命名为ohpm-repo.zip，[点击链接获取](https://developer.huawei.com/consumer/cn/download/ohpm-repo)。
3.  将Dockerfile文件和ohpm-repo.zip放在同一目录下。
    
    Dockerfile文件模板如下：
    
    _\# 使用官方 Node.js 18 镜像_
    FROM node:18
    COPY ./ohpm-repo.zip /tmp/ohpm-repo.zip
    RUN mkdir -p /opt/ohpm-repo && \\
        unzip /tmp/ohpm-repo.zip -d /opt/ohpm-repo && \\
        rm -f /tmp/ohpm-repo.zip
    _\# 修改conf/config.yaml的listen配置，不能用localhost和127.0.0.1，必须使用0.0.0.0_
    RUN if \[ -f /opt/ohpm-repo/conf/config.yaml \]; then \\
          sed -i 's/listen: \[^ \]\*/listen: 0.0.0.0:8088/g' /opt/ohpm-repo/conf/config.yaml; \\
        fi
    ENV OHPM\_REPO\_BIN\_DIR="/opt/ohpm-repo/bin"
    ENV PATH="${OHPM\_REPO\_BIN\_DIR}:${PATH}"
    _\# 创建用户，不允许使用root用户来运行ohpm-repo install和ohpm-repo start命令_
    RUN useradd -m myuser && \\
        chown -R myuser:myuser /opt/ohpm-repo && \\ 
        chmod -R 755 /opt/ohpm-repo
    USER myuser
    RUN ohpm-repo install
    ENV OHPM\_REPO\_DEPLOY\_ROOT="/home/myuser/ohpm-repo"
    CMD \["ohpm-repo", "start"\]
    

**搭建私仓服务**

1.  在当前Dockerfile文件目录下，构建镜像。
    
    docker build -t ohpm-repo .
    
2.  启动服务，包括前台运行命令、后台运行命令两种形式。
    
    _\#_ 前台运行命令
    docker run -it -p 8088:8088 ohpm-repo
    _\#_ 后台运行命令
    docker run -d --restart=unless-stopped --name ohpm-repo -p 8088:8088 ohpm-repo
    
3.  浏览器访问IP地址8088，使用私仓服务。