kcl-lang.io/kpm@v0.8.7-0.20240520061008-9fc4c5efc8c7/docs/publish_to_docker_reg-zh.md (about)

     1  # 如何使用 kpm 在 docker.io 上与他人分享您的 kcl 包
     2  
     3  [kpm](https://github.com/KusionStack/kpm) 是一个用于管理 kcl 包的工具。本文将指导您如何使用 kpm 将您的 kcl 包推送到发布到 docker.io 中。
     4  
     5  下面是一个简单的步骤,指导您如何使用 kpm 将您的 kcl 包推送到 docker.io。
     6  
     7  ## 步骤 1:安装 kpm
     8  
     9  首先,您需要在您的计算机上安装 kpm。您可以按照 [kpm 安装文档](https://kcl-lang.io/docs/user_docs/guides/package-management/installation)中的说明进行操作。
    10  
    11  ## 步骤 2:创建一个 docker.io 账户
    12  
    13  您需要创建一个 docker.io 账户以支持您的 kcl 包的推送。
    14  
    15  ## 步骤 3:登录 docker.io
    16  
    17  您可以直接使用 docker.io 的账户名和密码登录。
    18  
    19  ```shell
    20  kpm login -u <USERNAME> -p <PASSWORD> docker.io
    21  ```
    22  
    23  其中 `<USERNAME>` 是您的 docker.io 用户名,`<PASSWORD>` 是您 docker.io 账户的密码。
    24  
    25  关于如何使用 kpm 登录 docker.io 的更多信息,请参阅 [kpm login](./kpm_oci-zh.md#kpm-login)。
    26  
    27  ## 步骤 4:推送您的 kcl 包
    28  
    29  现在,您可以使用 kpm 将您的 kcl 包推送到 docker.io。
    30  
    31  ### 1. 一个合法的 kcl 包
    32  
    33  首先,您需要确保您推送的内容是符合一个 kcl 包的规范,即必须包含合法的 kcl.mod 和 kcl.mod.lock 文件。
    34  
    35  如果您不知道如何得到一个合法的 `kcl.mod` 和 `kcl.mod.lock`。您可以使用 `kpm init` 命令。
    36  
    37  ```shell
    38  # 创建一个名为 my_package 的 kcl 包
    39  kpm init my_package
    40  ```
    41  
    42  `kpm init my_package` 命令将会为您创建一个新的 kcl 包 `my_package`, 并为这个包创建 `kcl.mod` 和 `kcl.mod.lock` 文件。
    43  
    44  如果您已经有了一个包含 kcl 文件的目录 `exist_kcl_package`,您可以使用以下命令将其转换为一个 kcl 包,并为其创建合法的 `kcl.mod` 和 `kcl.mod.lock`。
    45  
    46  ```shell
    47  # 在 exist_kcl_package 目录下
    48  $ pwd 
    49  /home/user/exist_kcl_package
    50  
    51  # 执行 kpm init 命令来创建 kcl.mod 和 kcl.mod.lock
    52  $ kpm init 
    53  ```
    54  
    55  关于如何使用 kpm init 的更多信息,请参阅 [kpm init](./command-reference-zh/1.init.md)。
    56  
    57  ### 2. 推送 kcl 包
    58  
    59  您可以在 `kcl` 包的根目录下使用以下命令进行操作:
    60  
    61  ```shell
    62  # 在 exist_kcl_package 包的根目录下
    63  $ pwd 
    64  /home/user/exist_kcl_package
    65  
    66  # 推送 kcl 包到默认的 OCI Registry
    67  $ kpm push oci://docker.io/<USERNAME>/exist_kcl_package
    68  ```
    69  
    70  完成上述步骤后,您就成功地将您的 kcl 包 `exist_kcl_package` 推送到了 docker.io 中。
    71  关于如何使用 kpm push 的更多信息,请参阅 [kpm push](./kpm_oci-zh.md#kpm-push)。