gpt4 book ai didi

Docker Gatsby Strapi 生成 ECONNREFUSED 127.0.0.1 :1337 error

转载 作者:行者123 更新时间:2023-12-02 18:26:20 31 4
gpt4 key购买 nike

我一直在通过命令行使用 Strapi 和 Gatsby 来启动并运行网站和 CMS,类似于此设置 - https://strapi.io/blog/building-a-static-website-using-gatsby-and-strapi .一切正常,我已准备好进入下一步并将项目放入 Docker 中进行部署。

在 Docker 中启动并运行 Strapi 和 Mongo 数据库实例非常简单,与此设置几乎相同 - https://strapi.io/documentation/3.0.0-beta.x/installation/docker.html .

当我尝试将 Gatsby 安装放入 Docker 时出现问题。我在 docker-compose.yml 和 Dockerfile 中尝试了大量不同的配置设置,但我一直遇到错误

ERROR #11321 PLUGIN

"gatsby-source-strapi" threw an error while running the sourceNodes lifecycle: connect ECONNREFUSED 127.0.0.1:1337

Error: connect ECONNREFUSED 127.0.0.1:1337



Strapi 和 Mongo 服务在同一个 docker-compose.yml 文件中运行良好,如下所示
version: "3"
services:
strapi:
image: strapi/strapi
environment:
DATABASE_CLIENT: mongo
DATABASE_NAME: strapi
DATABASE_HOST: mongo
DATABASE_PORT: 27017
DATABASE_USERNAME: strapi
DATABASE_PASSWORD: strapi
links:
- mongo:mongo
volumes:
- ./cms:/srv/cms
ports:
- "1337:1337"

mongo:
image: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: strapi
MONGO_INITDB_ROOT_PASSWORD: strapi
volumes:
- ./db/db:/db/db
ports:
- "27017:27017"

gatsby:
image: docker-gatsby-client
build: ./website
command: gatsby develop -H 0.0.0.0
volumes:
- ./website:/usr/src/app/website
- /usr/src/app/website/node_modules
ports:
- "8000:8000"
depends_on:
- strapi
- mongo
environment:
GATSBY_WEBPACK_PUBLICPATH: /
STRAPI_URL: strapi:1337

我的 Dockerfile 看起来像这样
FROM node:12

WORKDIR /usr/src/app/website

COPY package*.json ./

RUN npm install

RUN npm install -g gatsby-cli

RUN npm install --save gatsby-source-strapi

COPY . .

EXPOSE 8000

CMD ["yarn", "develop", "-H", "0.0.0.0" ]

我在撰写文件中尝试了很多不同的设置,比如不使用卷,还有 Dockerfile,比如使用不同的节点版本。它们都不起作用,并且都返回上述相同的错误。

如果我从命令行运行 Gatsby 服务,它会从 Docker 容器连接到 Strapi 服务,一切都很好。这让我认为 Docker 中的 Gatsby 服务设置不正确,导致连接错误。

谁有想法?

最佳答案

在查看 Gatsby 容器的日志后,我用一个普通的 Hello World 实例替换了我完成的网站,这样我就可以将它从列表中删除或排除潜在的障碍。 Gatsby 成功地开始旋转。

更改 gatsby-config.js 文件中的某些内容以包含与 api 相关的数据导致连接错误返回。更改文件中的 apiURL 值 http://localhost:1337http://0.0.0.0:1337没有改变任何东西。

在 Mac 上搜索跨容器连接问题导致了一个最终为我工作的潜在客户。

这个问题 - https://github.com/docker/for-mac/issues/2705 - 拿着 key 。将 apiURL 值更改为 http://docker.for.mac.localhost:1337允许 API 在 Strapi 和 Gatsby 之间连接。由于一些同事使用个人电脑,所以我觉得这个值(value)并不合适,所以这似乎不合适。进一步挖掘出http://host.docker.internal:1337的apiURL值哪个有效。与开发版本相比,我将在生产版本上测试所有这些,看看它是如何保持的。

关于Docker Gatsby Strapi 生成 ECONNREFUSED 127.0.0.1 :1337 error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62337689/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com