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)。