diff --git a/tools/Dockerfile b/tools/Dockerfile index 074421984b057d67f70a856ec5453d94a2aef892..a07b83dee6895fbee2053e6e2ff0ac32f2c3141c 100644 --- a/tools/Dockerfile +++ b/tools/Dockerfile @@ -1,9 +1,19 @@ -FROM alpine:latest +FROM alpine:3.21.3 + +ARG TARGETPLATFORM +ARG TARGETOS +ARG TARGETARCH + +RUN echo "Building for platform: $TARGETPLATFORM" && \ + echo "Target OS: $TARGETOS" && \ + echo "Target Arch: $TARGETARCH" + +ARG tag=20250514 WORKDIR /app VOLUME ["/app/cfg"] -ADD ./tmp/hclient-cli /app/hclient-cli - -CMD ["/app/hclient_cli"] +RUN wget https://gitee.com/lazycatcloud/hclient-cli/releases/download/${tag}/hclient-cli-${TARGETARCH} -O /app/hclient-cli && chmod +x /app/hclient-cli +ADD ./cmd.sh /app/cmd.sh +CMD ["/app/hclient_cli"] diff --git a/tools/README.md b/tools/README.md index 0b17ea157d6aa9801ad5fe24022ff58da39835f3..e79fd694f1a68d48c95b7fcfdd1142333c36b410 100644 --- a/tools/README.md +++ b/tools/README.md @@ -4,7 +4,7 @@ ## cmd.sh -该文件主要是用来管理盒子的,基本与盒子管理的 API 一一对应。 +该文件主要是用来管理盒子的, 基本与盒子管理的 API 一一对应. 使用方法为 @@ -14,33 +14,37 @@ > sub_command 即对应的管理接口名称 -## Docker +## 构建 Docker 镜像 -为了方便容器应用访问,可以把 hclient-cli 包装在一个单独的容器中,使其与你的应用容器在同一个 docker 网络下,这样应用容器可以通过代理访问到懒猫的 ingress 端口资源。 +查看最新版本的 tag, 比如目前的最新版本的 tag 为 20250514, 则执行下面的命令开始编译. -在 `cmd.sh` 中提供了简单的一个封装,你可以根据自己的需求调整 `Dockerfile`. +``` +./build.sh 20250514 +``` + +编译后, 可以得到名字为 `hclient-cli:latest` 的镜像, 然后就可以使用该镜像启动容器了. -下面是一个启动容器的 Demo +> 该镜像同时把 `cmd.sh` 也封装进了镜像, 所以可以在容器中直接使用 `/app/cmd.sh` 命令. + +## 启动容器 + +下面是一个以代理模式启动容器的 Demo ``` docker run -itd \ - --privileged \ --name lazycat \ --hostname lazycat_in_docker \ --restart always \ - --network lnmp \ - --ip 172.20.0.66 \ -p 127.0.0.1:7777:7777 \ -p 127.0.0.1:61090:61090 \ -v /data/cfg:/app/cfg \ - ety001/lazycat-cli:latest \ + hclient-cli:latest \ /app/hclient-cli \ - -api-addr "172.20.0.66:7777" \ - -http-addr "172.20.0.66:61090" + -cfg "/app/cfg" \ + -api-addr "127.0.0.1:7777" \ + -http-addr "127.0.0.1:61090" ``` > 请注意不要暴露你的 7777 管理端口和 61090 代理端口给全局网络 -Demo 容器启动后,所有 lnmp 网络中的容器可以通过 `172.20.0.66:61090` 代理访问懒猫资源。 - -宿主机可以通过 `127.0.0.1:7777` 管理,通过 `127.0.0.1:61090` 代理访问。 +Demo 容器启动后, 宿主机可以通过 `127.0.0.1:7777` 管理, 通过 `127.0.0.1:61090` 代理访问. diff --git a/tools/build.sh b/tools/build.sh new file mode 100644 index 0000000000000000000000000000000000000000..1ee26c3098531493caa914fdfea32c94f400b57a --- /dev/null +++ b/tools/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [[ "$1" = "" ]]; then + tag=20250514 + echo "will use the default tag ${tag} to build" +else + tag=$1 +fi + +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t hclient-cli:${tag} \ + -t hclient-cli:latest \ + --build-arg tag=${tag} \ + . diff --git a/tools/cmd.sh b/tools/cmd.sh index deca6e78b3d57d7016c8f5a8937e7f8bd03c062c..15f1c5eb88e1b5f15c5ea57d731bce3c529c4550 100755 --- a/tools/cmd.sh +++ b/tools/cmd.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ash cookie_file=/tmp/lzc_cookie