更新 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-compose
和 strapi/strapi
图像执行初始设置后,我能够使用 docker-compose run <service name> yarn add <package>
.
直接在容器内安装其他依赖项
我选择了这条路线,因为我在安装 sharp 库时遇到了问题 - 对于 Linux 和 Mac OS,它有不同的 dependencies/binaries。这种方法对我来说效果很好,但缺点是您无法将 node_modules
文件夹作为卷安装,并且在容器中安装包可能需要更长的时间。
我正在通过尝试容器化 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-compose
和 strapi/strapi
图像执行初始设置后,我能够使用 docker-compose run <service name> yarn add <package>
.
我选择了这条路线,因为我在安装 sharp 库时遇到了问题 - 对于 Linux 和 Mac OS,它有不同的 dependencies/binaries。这种方法对我来说效果很好,但缺点是您无法将 node_modules
文件夹作为卷安装,并且在容器中安装包可能需要更长的时间。