您好,
我已经安装并运行了 Discourse。每次重建应用程序时,它都会拉取 launcher 存储库、discourse/base Docker 镜像和 Discourse 存储库。
我想限制此行为,以便除非传递了特定参数,否则重建不会自动检查和拉取更新。
有人做过类似的事情吗?
您好,
我已经安装并运行了 Discourse。每次重建应用程序时,它都会拉取 launcher 存储库、discourse/base Docker 镜像和 Discourse 存储库。
我想限制此行为,以便除非传递了特定参数,否则重建不会自动检查和拉取更新。
有人做过类似的事情吗?
您担心版本稳定性吗?
为什么不切换到稳定分支呢?
我使用的是稳定版 3.2.0。
目的是仅在我们想要的时候才从 GitHub 或 Docker Hub 存储库拉取,而不是每次重建容器时都拉取。
您使用的是标准安装吗?
如果是,为什么不运行重建命令?
供参考,稳定版更新可能很重要——它们通常包含漏洞或重大错误修复。
是的,我正在使用标准的独立方法。我明白保持应用程序更新的必要性。我的想法是在我想更新存储库时向启动器添加一个标志。
如果你想在不重新构建的情况下重启容器,只需执行:
./launcher restart app
为什么需要在不更新的情况下重新构建——你的目标是什么?
稳定版更新不太可能引入任何破坏性更改。
稳定版的要点是保持不变。你为什么要重建?
拉取容器的原因是为了使其与 discourse 代码的要求保持一致。
如果你想在不进行拉取的情况下进入容器,可以这样做:
docker exec -it app bash
如果你想在不重建的情况下添加插件,可以进入插件目录并克隆它,然后迁移数据库,但你仍然需要确保你获取的是插件的正确提交版本以保持稳定。
在添加或删除插件的情况下,./launcher restart app 将不会更新实例。
鉴于稳定版本相对而言很少发布,它们并不经常带来破坏性更改,并且通常会在有更新时附带重要的安全更新,因此我不理解您的要求。
依我看,添加插件是更新并确保您已获取所有可用更新的_好_借口。
依我看,在稳定版本上不更新是一种糟糕的做法,因为这可能会让您长时间暴露于已知漏洞。
我对启动器进行了以下更改
echo " --pull-git 拉取最新的git仓库"
echo " --pull-image 拉取最新的Docker镜像"
pull_git=false
pull_image=false
rebuild)
if [ "$(git symbolic-ref --short HEAD)" = "master" ] && [ "$pull_git" = true ]; then
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a
fi
....
通过这些更改,我可以在每次重建时避免更新。这使得插件可以被安装。
当您遇到这些插件问题时,请在新主题中提及。
不,它不能,至少不能正常工作。
它可能适用于仅 API 的插件,但任何 JavaScript 或新插件都需要在构建过程中进行编译。
因此,在大多数情况下,要添加新插件,您必须执行重新构建。
您遇到的另一个问题是,如果您不小心,更改核心构建脚本可能会给您带来大麻烦,特别是如果对核心脚本进行了足够大的更改。