title: 设置本地构建服务器
运行本地构建服务器(也称为'Extender')有两种方式:
在运行本地云构建器之前,您需要安装以下软件:
安装上述软件后,请按照以下步骤安装和运行Defold云构建器:
Windows用户注意:使用git bash终端执行以下命令。
授权Google Cloud并创建应用程序默认凭据 - 下载Docker容器镜像时,您需要拥有Google账户,以便我们可以监控并确保公共容器注册表的公平使用,并暂时暂停过度下载镜像的账户。
gcloud auth login
配置Docker使用工件注册表 - 需要将Docker配置为使用gcloud
作为凭据助手,以便从europe-west1-docker.pkg.dev
的公共容器注册表下载容器镜像。
gcloud auth configure-docker europe-west1-docker.pkg.dev
验证Docker和Google Cloud是否配置正确 - 通过拉取所有构建服务器容器镜像使用的基础镜像,验证Docker和Google Cloud是否设置成功。在运行以下命令之前,请确保Docker Desktop正在运行:
docker pull --platform linux/amd64 europe-west1-docker.pkg.dev/extender-426409/extender-public-registry/extender-base-env:latest
克隆Extender仓库 - 正确设置Docker和Google Cloud后,我们几乎可以启动服务器了。在启动服务器之前,我们需要克隆包含构建服务器的Git仓库:
git clone https://github.com/defold/extender.git
cd extender
下载预构建的jar文件 - 下一步是下载预构建的服务器(extender.jar
)和清单合并工具(manifestmergetool.jar
):
TMP_DIR=$(pwd)/server/_tmp
APPLICATION_DIR=$(pwd)/server/app
# 设置必要的Extender和清单合并工具版本
# 版本可以在Github发布页面找到 https://github.com/defold/extender/releases
# 或者您可以拉取最新版本(见下面的代码示例)
EXTENDER_VERSION=2.6.5
MANIFESTMERGETOOL_VERSION=1.3.0
echo "将预构建的jar文件下载到 ${APPLICATION_DIR}"
rm -rf ${TMP_DIR}
mkdir -p ${TMP_DIR}
rm -rf ${APPLICATION_DIR}
mkdir -p ${APPLICATION_DIR}
gcloud artifacts files download \
--project=extender-426409 \
--location=europe-west1 \
--repository=extender-maven \
--destination=${TMP_DIR} \
com/defold/extender/server/${EXTENDER_VERSION}/server-${EXTENDER_VERSION}.jar
gcloud artifacts files download \
--project=extender-426409 \
--location=europe-west1 \
--repository=extender-maven \
--destination=${TMP_DIR} \
com/defold/extender/manifestmergetool/${MANIFESTMERGETOOL_VERSION}/manifestmergetool-${MANIFESTMERGETOOL_VERSION}.jar
cp ${TMP_DIR}/$(ls ${TMP_DIR} | grep server-${EXTENDER_VERSION}.jar) ${APPLICATION_DIR}/extender.jar
cp ${TMP_DIR}/$(ls ${TMP_DIR} | grep manifestmergetool-${MANIFESTMERGETOOL_VERSION}.jar) ${APPLICATION_DIR}/manifestmergetool.jar
启动服务器 - 现在我们可以通过运行docker compose主命令来启动服务器:
docker compose -p extender -f server/docker/docker-compose.yml --profile <profile> up
其中*profile*可以是:
all - 为每个平台运行远程实例
android - 运行前端实例 + 用于构建Android版本的远程实例
web - 运行前端实例 + 用于构建Web版本的远程实例
linux - 运行前端实例 + 用于构建Linux版本的远程实例
windows - 运行前端实例 + 用于构建Windows版本的远程实例
consoles - 运行前端实例 + 用于构建Nintendo Switch/PS4/PS5版本的远程实例
nintendo - 运行前端实例 + 用于构建Nintendo Switch版本的远程实例
playstation - 运行前端实例 + 用于构建PS4/PS5版本的远程实例
metrics - 运行VictoriaMetrics + Grafana作为指标后端和可视化工具
有关docker compose
参数的更多信息,请参见 https://docs.docker.com/reference/cli/docker/compose/。
当docker compose启动后,您可以在编辑器的首选项中使用http://localhost:9000作为构建服务器地址,或者如果您使用Bob构建项目,则作为--build-server
值。
可以将多个配置文件传递给命令行。例如:
docker compose -p extender -f server/docker/docker-compose.yml --profile android --profile web --profile windows up
上面的示例运行前端、Android、Web、Windows实例。
要停止服务 - 如果docker compose以非分离模式运行,请按Ctrl+C,或者
docker compose -p extender down
如果docker compose是以分离模式运行的(例如,向docker compose up
命令传递了'-d'标志)。
如果您想拉取最新版本的jar文件,可以使用以下命令确定最新版本
EXTENDER_VERSION=$(gcloud artifacts versions list \
--project=extender-426409 \
--location=europe-west1 \
--repository=extender-maven \
--package="com.defold.extender:server" \
--sort-by="~createTime" \
--limit=1 \
--format="value(name)")
MANIFESTMERGETOOL_VERSION=$(gcloud artifacts versions list \
--project=extender-426409 \
--location=europe-west1 \
--repository=extender-maven \
--package="com.defold.extender:manifestmergetool" \
--sort-by="~createTime" \
--limit=1 \
--format="value(name)")
macOS和iOS的构建是在真实的Apple硬件上完成的,使用在独立模式下运行的构建服务器,而不使用Docker。而是在机器上直接安装XCode、Java和其他必需的工具,构建服务器作为普通的Java进程运行。您可以在GitHub上的构建服务器文档中了解如何设置它。
请遵循GitHub上Extender仓库中的说明来手动构建和运行本地构建服务器。