$ docker pull zhangsean/aliddns
$ docker run -d \
-e "AKID=[ALIYUN's AccessKey-ID]" \
-e "AKSCT=[ALIYUN's AccessKey-Secret]" \
-e "DOMAIN=ddns.aliyun.win" \
-e "REDO=600" \
-e "TTL=600" \
zhangsean/aliddns
$ docker run --rm zhangsean/aliddns -h
NAME:
aliddns - aliyun-ddns-cli
USAGE:
aliddns [global options] command [command options] [arguments...]
VERSION:
Git:[MISSING BUILD VERSION [GIT HASH]] (go1.21)
COMMANDS:
help, h Shows a list of commands or help for one command
DDNS:
list List AliYun's DNS DomainRecords Record
delete Delete AliYun's DNS DomainRecords Record
update Update AliYun's DNS DomainRecords Record, Create Record if not exist
auto-update Auto-Update AliYun's DNS DomainRecords Record, Get IP using its getip
GET-IP:
getip Get IP Combine 10+ different Web-API
resolve Get DNS-IPv4 Combine 4+ DNS Upstream
GLOBAL OPTIONS:
--access-key-id value, --id value AliYun's Access Key ID
--access-key-secret value, --secret value AliYun's Access Key Secret
--ipapi value, --api value Web-API to Get IP, like: http://v6r.ipip.net
--ipv6, -6 IPv6
--help, -h show help
--version, -v print the version
aliddns --id ${AccessKeyID} --secret ${AccessKeySecret} \
auto-update --domain ddns.example.win
aliddns --id ${AccessKeyID} --secret ${AccessKeySecret} \
update --domain ddns.example.win \
--ipaddr $(ifconfig pppoe-wan | sed -n '2{s/[^0-9]*://;s/[^0-9.].*//p}')
添加支持多架构的最小化Dockerfile,包含构建阶段和两种最终镜像选择:
基于Alpine的带shell版本 (~55MB)
基于scratch的UPX极限压缩版本 (~13MB)
支持架构: amd64, arm64, armv7
构建特性:
CGO_ENABLED=0)--best --lzma)使用方法:
# 构建UPX压缩版本
docker build -f Dockerfile.minimal --target upx -t aliddns:upx .
# 构建Alpine版本
docker build -f Dockerfile.minimal --target alpine -t aliddns:alpine .
# 多架构构建
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 \
--target upx -t aliddns:latest .
在Makefile中添加UPX压缩选项,并通过环境变量控制是否启用。
压缩效果:
| 平台 | 原始大小 | UPX压缩后 | 压缩率 |
|---|---|---|---|
| linux-amd64 | ~47MB | ~10MB | ~79% |
| linux-arm64 | ~46MB | ~10MB | ~78% |
| linux-armv7 | ~46MB | ~10MB | ~78% |
使用方法:
# 本地构建启用UPX压缩
ENABLE_UPX=true make release GOOS=linux GOARCH=amd64
# 或手动压缩已有二进制
upx --best --lzma build/aliddns-linux-amd64/aliddns
CI/CD集成:
release事件触发器语法错误自动构建的镜像标签:
| 标签 | Target | 预估大小 | 说明 |
|---|---|---|---|
latest, v2026.03.01 | upx | ~13MB | UPX压缩版(推荐生产使用) |
alpine, v2026.03.01-alpine | alpine | ~55MB | Alpine基础版(带shell) |
本次发布包含以下平台的二进制文件(均已UPX压缩):
静态链接参数:
CGO_ENABLED=0
go build -ldflags "-s -w -extldflags '-static'"
UPX压缩参数:
upx --best --lzma aliddns
Docker多架构支持:
docker buildx进行跨平台构建TARGETARCH自动选择正确的UPX架构版本Full Changelog: https://github.com/zhangsean/aliddns/compare/v2026.03.01
Content type
Image
Digest
sha256:b3a2b2010…
Size
13.9 MB
Last updated
5 months ago
docker pull zhangsean/aliddns:v2026.03.01-alpine