dfx 部署

使用 dfx deploy 命令在本地容器执行环境、Internet Computer platform 或指定的测试网上注册、构建和部署 dapp。 默认情况下,会部署项目 dfx.json 配置文件中定义的所有容器。

此命令使您能够运行一个命令而不是将以下命令作为单独的步骤运行,从而简化了开发人员的工作流程:

dfx canister create --all
dfx build
dfx canister install --all

请注意,您只能从项目目录结构中运行此命令。 例如,如果您的项目名称是 hello_world,那么您当前的工作目录必须是 hello_world 顶级项目目录或其子目录之一。

基本用法

dfx deploy [flag] [option] [canister_name]

标志

您可以在 dfx deploy 命令中使用以下可选标志。

标志 说明

-h, --help

显示帮助信息。

-V, --version

显示版本信息。

选项

您可以在 dfx deploy 命令中使用以下选项。

选项 说明

--network <network>

覆盖要连接的环境。 默认情况下,使用本地容器执行环境。

--argument <argument>

使用 Candid 语法指定参数以在部署期间传递给容器。 请注意,此选项要求您在 Motoko 程序中定义一个参与者类。

--with-cycles <number-of-cycles>

使您能够指定项目中容器的初始循环数。

参数

您可以为 dfx deploy 命令指定以下参数。

参数 描述

canister_name

指定要注册、构建和部署的容器的名称。 请注意,您指定的容器名称必须与项目的 dfx.json 配置文件的 canisters 部分中的至少一个名称匹配。 如果您不指定容器名称,dfx deploy 将部署在 dfx.json 文件中定义的所有容器。

例子

您可以使用 dfx deploy 命令在本地容器执行环境、Internet Computer platform 或指定测试网上部署所有或特定容器。

例如,要在 dfx.json 配置文件中配置的假设 ic-pubs 测试网上部署 hello 项目,可以运行以下命令:

dfx deploy hello --network ic-pubs

要在本地容器执行环境上部署项目并将单个参数传递给安装步骤,您可以运行类似于以下内容的命令:

dfx deploy hello_actor_class --argument '("from DFINITY")'

请注意,目前您必须在 Motoko dapp 中使用演员类。 在此示例中,dfx deploy 命令指定要传递给 hello_actor_class 容器的参数。 hello_actor_class 容器的主程序如下所示:

actor class Greet(name: Text) {
    public query func greet() : async Text {
        return "Hello, " # name # "!";
    };
};

您可以使用带有 --with-cycles 选项的 dfx deploy 命令来指定钱包创建的容器的初始余额。 如果您未指定容器,则默认情况下您指定的循环数将添加到所有容器。 为避免这种情况,请按名称指定特定容器。 例如,要将 8000000000000 个周期的初始余额添加到名为“hello-assets”的容器中,请运行以下命令:

dfx deploy --with-cycles 8000000000000 hello-assets