trieb-work / strapi-provider-cloudflare-r2

Official strapi provider to use the Cloudflare R2 object storage
https://market.strapi.io/providers/strapi-provider-cloudflare-r2
Other
15 stars 7 forks source link

The provided middlewares.js code is causing issues during the Docker build process. #21

Closed xuqssq closed 3 months ago

xuqssq commented 4 months ago

🐛 Bug Report

If after copying the middleware.js code, the Docker build does not work properly and the thumbnails in the Strapi plugin store also fail, this could be due to some configuration errors or environment variables not being set correctly.

#0 0.324 yarn run v1.22.19
#0 0.344 $ strapi build
#0 1.442 [WARN] [@strapi/strapi]: The NODE_ENV is not set to production.  This may result in unexpected behavior.
#0 1.493 - Building build context
#0 1.493
#0 1.495 [ERROR]  There seems to be an unexpected error, try again with --debug for more information
#0 1.495
#0 1.504 ┌──────────────────────────────────────────────────────────────────────────────┐│                                                                              ││   Error: Could not load js config file /opt/app/config/middlewares.js:        ││   Cannot read properties of undefined (reading 'replace')                    ││   at loadJsFile (/opt/node_modules/@strapi/strapi/dist/core/app-configurat   ││   ion/load-config-file.js:18:13)                                             ││   at Module. loadFile (/opt/node_modules/@strapi/strapi/dist/core/app-confi   ││   guration/load-config-file.js:37:14)                                        ││   at /opt/node_modules/@strapi/strapi/dist/core/app-configuration/config-l   ││   oader.js:14:31                                                             ││   at Array. reduce (<anonymous>)                                              ││   at loadConfigDir (/opt/node_modules/@strapi/strapi/dist/core/app-configu   ││   ration/config-loader.js:12:175)                                            ││   at loadConfiguration (/opt/node_modules/@strapi/strapi/dist/core/app-con   ││   figuration/index.js:49:42)                                                 ││   at new Strapi (/opt/node_modules/@strapi/strapi/dist/Strapi.js:124:23)     ││   at Object. initFn [as default]                                              ││   (/opt/node_modules/@strapi/strapi/dist/Strapi.js:467:18)                   ││   at createBuildContext                                                      ││   (/opt/node_modules/@strapi/admin/dist/_chunks/index-sNH2VWbC.js:576:66)    ││   at Object. build                                                            ││   (/opt/node_modules/@strapi/admin/dist/_chunks/index-sNH2VWbC.js:663:21)    ││                                                                              │└──────────────────────────────────────────────────────────────────────────────┘
#0 1.530 error Command failed with exit code 1.
#0 1.530 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
------
failed to solve: executor failed running [yarn build]: exit code: 1

This is my modified version, it works properly and is the result I expected!

{
    name: "strapi::security",
    config: {
      contentSecurityPolicy: {
        useDefaults: true,
        directives: {
          "connect-src": ["'self'", "https:"],
          "img-src": [
            "'self'",
            "data:",
            "blob:",
            "market-assets.strapi.io",
            env("CF_PUBLIC_ACCESS_URL") ? env("CF_PUBLIC_ACCESS_URL").replace(/^https?:\/\//, "") : "",
          ],
          "media-src": [
            "'self'",
            "data:",
            "blob:",
            "market-assets.strapi.io",
            env("CF_PUBLIC_ACCESS_URL") ? env("CF_PUBLIC_ACCESS_URL").replace(/^https?:\/\//, "") : "",
          ],
          upgradeInsecureRequests: null,
        },
      },
    },
  },
tilman commented 3 months ago

Your only change was using env("CF_PUBLIC_ACCESS_URL") ? env("CF_PUBLIC_ACCESS_URL").replace(/^https?:\/\//, "") : "", instead of env("CF_PUBLIC_ACCESS_URL").replace(/^https?:\/\//, ""). Is this correct?

Thanks for reporting it. I will create a PR for it.