如何在Docker容器中升级Strapi?
我和Docker compose一起下水了。看了之后,我还是不知道是否要升级到下一个版本,我应该选择什么方法:如何在Docker容器中升级Strapi?,docker,strapi,Docker,Strapi,我和Docker compose一起下水了。看了之后,我还是不知道是否要升级到下一个版本,我应该选择什么方法: 在Strapi项目目录下,执行npm install Strapi@-g和npm install Strapi@--save docker exec-it sh,导航到Strapi项目目录,然后执行npm install Strapi@-g和npm install Strapi@--save 都没有 在本地开发者树中,更新package.json文件中的包版本。本地运行npm安装或纱线
npm install Strapi@-g
和npm install Strapi@--save
docker exec-it sh
,导航到Strapi项目目录,然后执行npm install Strapi@-g
和npm install Strapi@--save
package.json
文件中的包版本。本地运行npm安装
或纱线安装
。启动您的应用程序。验证它是否有效。运行您的测试。修复升级中的任何兼容性问题。在没有Docker参与的情况下完成所有这些docker build.
以使用新的包依赖项重建docker映像Docker中有一种常见的“模式”,即运行节点,绑定将应用程序装入其中,然后在
Node\u模块
目录上装入匿名卷。对于日常开发,我发现只在主机上安装Node要简单得多(它实际上是一个apt get install
或brew install
命令)。如果您正在使用此面向Docker的设置,则节点模块的匿名卷将不会注意到您已更改了节点模块的目录,并且您必须重新运行Docker build
并删除和重新创建容器。TLDR:3,而2的方向正确
官方文件对我来说也是第一次不清楚。
下面是docker compose上下文中从3.0.5到3.1.5的分步指南
它试图尽可能地遵循官方文档,但包括一些额外的(在我的情况下是强制性的)步骤
升级Strapi
- 以下内容涉及通过
docker compose使用的strapi/strapi
(非strapi/base
)docker图像
- 重要升级Docker映像版本不会升级Strapi版本。
- Strapi NodeJS应用程序仅在第一次启动时构建自身,前提是检测到空文件夹并且通常存储在装入的卷中。看
- 要升级,首先按照指南(和)重建实际的Strapi NodeJS应用程序。其次,更新docker标记以匹配版本以避免混淆
从3.0.5升级到3.1.5的示例:
#https://strapi.io/documentation/developer-docs/latest/guides/update-version.html
#确保服务器在迁移结束之前未运行
##这是一个不明确的指示。停止Nginx以阻止对应用程序的访问,而不停止Strapi本身。
docker compose exec strapi bash#进入正在运行的容器
##另一种方法是“docker compose stop strapi”,并使用“docker”手动重构容器选项,用“---entrypoint/bin/bash”覆盖入口点`
#几张支票
纱线strapi版本#已安装当前版本
纱线信息strapi#npm信息strapi@3.1.x版本#可用版本
纱线-版本#npm-版本
纱线列表#npm列表
cat package.json
#升级您的依赖项
sed-i的|“3.0.5”|“3.1.5”| g'package.json和cat package.json
纱线安装#npm安装
纱线斜纹版
#打破改变?请参阅特定版本的迁移指南!
## https://strapi.io/documentation/developer-docs/latest/migration-guide/migration-guide-3.0.x-to-3.1.x.html
##定义ADMINJWT令牌
##更新管理员的用户名约束
docker compose exec db bash
psqlstrapi-strapi
--展示表格并描述其中一个
\dt
\d strapi_管理员
##迁移自定义管理面板插件
#重建您的管理面板
rm-rf节点#模块#解决“错误:未找到模块:错误:无法解决”的方法
纱线成型--清洁#npm运行成型--清洁
#扩展?
#启动您的应用程序
纱线开发#npm运行开发
#确认并测试,访问URL
#错误?
##错误:ENOSPC:已达到文件监视程序数量的系统限制。。。
#可以通过在docker主机系统上修改内核参数来解决
sudo vi/etc/sysctl.conf#fs.inotify.max_user_watches=524288
sudosysctl-p
#修改docker compose以反映版本更改并避免混淆!
docker ps
vi docker-compose.yml#例如3.0.5>3.1.5
docker合成-强制重新创建-无deps-d strapi
# ... 并在不再需要时删除旧的docker映像。
另外,我们可以通过以下方式共同改进文档。发出拉取请求您似乎有两个问题。A) 我应该升级吗?B) 我应该如何升级?我认为你需要提供更多的信息来得到一个问题的答案,也许一个非常具体的问题比一般性的建议更好。对于B,我认为您可能还需要更多地解释您的配置。