尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Actual 的 Docker 镜像 latest 与 nightly 标签怎么选

Actual 的 Docker 镜像 latest 与 nightly 标签怎么选 Actual 的 Docker 镜像 latest 与 nightly 标签怎么选【免费下载链接】actualA local-first personal finance app项目地址: https://gitcode.com/GitHub_Trending/ac/actual当你在自己的服务器上通过 Docker 部署 Actualsync server时拉取镜像的第一步就是选标签latest和nightly指向的并不是同一类东西选错会导致生产实例频繁踩到未修复的 bug或者一直拿不到想要的新功能。本文基于 Actual 的官方安装文档docker.md和发布说明releases.md说明两个标签各自的含义、选择依据以及选定标签后如何启动、备份和升级容器。两个标签分别指向什么Actual 官方镜像发布在两个仓库Docker Hub 上的actualbudget/actual-server和 GitHub Container Registry 上的ghcr.io/actualbudget/actual。文档明确说明从任一仓库拉取的镜像行为应该一致可以任选其一。官方发布多组标签供想要第一时间用上最新改动的用户选择而无需等待latest更新。具体分两类latest指向 Actual 最近一次官方正式发布的版本。文档原话是这是大多数用户推荐使用的标签。变体latest-alpine基于 Alpine Linux镜像体积小适合低性能设备。nightly每次有 commit 推送到master分支时都会更新。文档欢迎用户尝试但明确提示 nightly 可能比正式版本有更多 bug发现 bug 应该报告。如果选择使用nightly文档要求你务必为预算数据保留备份以防出问题。变体nightly-alpine同样基于 Alpine Linux适合低性能设备。也就是说两个标签的本质区别是更新触发方式latest跟随官方发布节奏nightly跟随master分支的提交节奏。选择依据可以直接按用途判断使用场景应选标签日常记账、多人使用、不能随时容忍数据服务中断latest或latest-alpine想抢先体验新功能愿意承担额外 bug 风险且坚持做备份nightly或nightly-alpine设备性能有限如树莓派级别的低配服务器在以上选择基础上换用-alpine变体另外每个正式版本还会发布对应的版本固定标签例如 releases.md 中 26.9.0 一节标注的Docker Tag: 26.9.0以及同版本发布说明中提到的:26.9.0-alpine。如果你需要把服务器锁在某个确定版本上而不是让latest漂移可以拉取这类版本号标签。一个和标签兼容相关的历史变更需要注意在 26.6.0 的发布说明中edge标签已被重命名为nightly。如果你的 docker-compose 或启动脚本里还写着actualbudget/actual-server:edge需要改成:nightly或:nightly-alpine否则拉到的将是旧命名下的镜像。用 Docker Compose 启动推荐主路径前置条件只需 Docker。仓库内提供了现成的 docker-compose.yml其中image字段默认为docker.io/actualbudget/actual-server:latest即默认使用稳定标签。想改用 nightly只需把该行的标签改为:nightly或:nightly-alpine版本固定则改为具体版本号如:26.9.0。这份 compose 文件同时给出了与标签选择直接相关的关键配置services: actual_server: image: docker.io/actualbudget/actual-server:latest ports: # 让 Actual 可通过运行服务器的 5006 端口访问即 http://localhost:5006 - 5006:5006 environment: # 按需取消注释以配置选项例如 # - ACTUAL_HTTPS_KEY/data/selfhost.key # - ACTUAL_HTTPS_CERT/data/selfhost.crt # - ACTUAL_PORT5006 # 如果没有使用任何选项应删掉整个 environment: 标签 volumes: # 把 ./actual-data 改成你想在服务器上存放 Actual 数据的目录 # /data 是 Actual 在容器内查找文件的默认路径保持不变 - ./actual-data:/data healthcheck: test: [CMD-SHELL, node scripts/health-check.js] interval: 60s timeout: 10s retries: 3 start_period: 20s restart: unless-stopped需要按自己环境替换的只有两处./actual-data换成宿主机上用于存放预算数据的目录若修改了端口映射同步修改ports的第一个数字。volumes这一行就是备份策略的落点——容器数据持久化在宿主机该目录中删除容器不会丢失数据nightly 用户要做的备份本质上就是围绕这个目录里的数据。创建并启动容器docker compose up --detach容器内的healthcheck调用scripts/health-check.js每 60 秒一次会持续校验实例健康状态可以用docker inspect查看健康检查结果来判断服务是否正常运行。如果配置了自签名证书compose 文件中也给出了对应的 healthcheck 变体通过NODE_EXTRA_CA_CERTS/data/selfhost.crt传入证书。直接用 docker 命令启动替代路径不用 compose 时可以用一条docker run命令启动。以下命令按文档原样会启动最新稳定版latestdocker run --pullalways --restartunless-stopped -d -p 5006:5006 -v YOUR/PATH/TO/DATA:/data --name my_actual_budget actualbudget/actual-server:latest参数用途均引自文档说明--pullalways始终拉取最新镜像--restartunless-stopped设置容器重启策略-d后台运行-p 5006:5006设置访问 Actual 的端口宿主端口:容器端口-v YOUR/PATH/TO/DATA:/data指定预算数据的宿主机存放目录需要替换为你本机上的一个真实文件夹。服务端会在该位置创建server-files和user-files子目录--name my_actual_budget容器名可改为任意值actualbudget/actual-server:latest指定要拉取并启动的镜像。要改选 nightly 或固定版本只需替换最后一个参数中的标签例如actualbudget/actual-server:nightly。选 nightly 之后备份是必做项文档对 nightly 用户的唯一硬性要求是keep backups of your budget。备份的实际操作路径在 backup.md 中给出与用哪个标签无关但 nightly 用户应把它当作例行操作登录预算点击 More Settings滚动到 Export 部分点击Export Data把导出的文件保存到本地即完成一次备份。该文档还说明预算文件中默认保存了所有历史变更文件会随时间增长如果预算非常老、大备份恢复困难可在 Settings Show advanced settings 中执行 Reset Sync 后重新导出以减小文件体积。桌面端用户也可以随时通过 File Load Backup… 中的Backup Now强制生成一份备份——文档给出的时机建议是在做任何可能想回退的操作之前这对频繁更新镜像的 nightly 用户尤其适用。升级与回退容器两种启动方式对应两套升级流程。Docker Compose 方式docker compose pull docker compose up -ddocker run 方式文档给出的流程是先停止并删除旧容器再重新运行。注意docker container rm会删除容器本身数据保留在-v挂载的宿主机目录中因此这一步不会丢数据但删除前确认数据目录路径正确docker stop my_actual_budget docker container rm my_actual_budget docker run --pullalways --restartunless-stopped -d -p 5006:5006 -v YOUR/PATH/TO/DATA:/data --name my_actual_budget actualbudget/actual-server:latest文档也建议可以把这三条放进一个批处理脚本实现一键更新。从nightly换回latest或反向切换时流程与上面升级完全相同只是最后一条命令里的镜像标签要改为目标标签。由于 nightly 可能包含未修复的问题回退到latest后如果数据异常就用之前导出的备份文件恢复恢复步骤见 restore.md。验证连接在本地网络中的另一台设备上访问http://_serverIP_:_chosenPort_把_serverIP_换成运行服务器的 IP_chosenPort_换成你映射的宿主端口默认 5006能打开 Actual 页面即表示容器与所选标签的镜像工作正常。这也是选定标签后唯一的官方验证方式标签本身的指向是否真的指向最新官方发布可以在拉取时通过镜像仓库页面核对但文档未给出更多核对命令。一个需要核对的版本兼容性限制选择latest时还要知道它指向的具体版本带来的环境约束。releases.md 中 26.9.0 一节的 Breaking change 提示该版本将容器镜像的 Node 升级到 Node 24Ubuntu 镜像停止支持 32-bit ARM仍在该平台上的用户应改用继续受支持的 Alpine 镜像如:26.9.0-alpine。如果你的设备是 32-bit ARM选latest 应直接落到latest-alpine上否则升级后可能无法运行。总结成一条判断路径默认用latest低配设备用latest-alpine只有当你要提前验证 master 分支上的改动、并接受bug 可能更多的文档级风险提示时才切换到nightly且切换前必须先完成一次 backup.md 中描述的导出备份。【免费下载链接】actualA local-first personal finance app项目地址: https://gitcode.com/GitHub_Trending/ac/actual创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表