更新 Strapi Docker package.json

Updating Strapi Docker package.json

我正在通过尝试容器化 Strapi CMS 来了解 Docker。默认 Docker 图片 (https://github.com/strapi/strapi-docker) works well enough as a starting point, but I'm trying to add a couple packages to the Strapi instance for my needs (adding in Azure storage account support using https://www.npmjs.com/package/strapi-provider-upload-azure-storage)。由于我是 Docker 的新手,我很难弄清楚如何让容器安装该包作为 Docker 运行 过程的一部分。

我看到 strapi/base 图像 Docker 文件包含引用 package.json 文件的这一行:

COPY ./package.json ./

我假设那是我要添加对我想要安装的包的引用的地方,以便稍后由 npm 安装它们,但我不确定 package.json 文件在哪里位于,更不用说如何修改了。

非常感谢在 Docker 运行 过程中提供有关如何安装该软件包的任何帮助!

我发现 strapi-docker 使用脚本构建图像,而不仅仅是 repo (bin/build.js) 中的 Docker 文件。我还发现 docker-entrypoint.sh 是依赖安装发生的地方,所以我在检查 node_modules 目录后添加了几个 npm install 语句。这样做使我能够成功地将所需的包添加到我的 Docker 容器中。

我听从了 Docker 团队的一些建议:

https://www.docker.com/blog/keep-nodejs-rockin-in-docker/

在使用 docker-composestrapi/strapi 图像执行初始设置后,我能够使用 docker-compose run <service name> yarn add <package>.

直接在容器内安装其他依赖项

我选择了这条路线,因为我在安装 sharp 库时遇到了问题 - 对于 Linux 和 Mac OS,它有不同的 dependencies/binaries。这种方法对我来说效果很好,但缺点是您无法将 node_modules 文件夹作为卷安装,并且在容器中安装包可能需要更长的时间。