Docker Gatsby Strapi产生ECONNREFUSED 127.0.0.1:1337错误

问题描述 投票:0回答:1

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

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

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

的错误

错误#11321插件

“ gatsby-source-strapi”在运行sourceNodes时抛出错误 生命周期:连接ECONNREFUSED 127.0.0.1:1337

错误:连接ECONNREFUSED 127.0.0.1:1337

Strati和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服务设置不正确,这会产生连接错误。

有人有什么想法吗?

docker docker-compose gatsby strapi
1个回答
0
投票

[浏览完Gatsby容器的日志后,我用一个简单的Hello World实例替换了完整的网站,这样我就可以将其排除在列表之外,也可以避免潜在的障碍。盖茨比成功地向上旋转。

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

[在Mac上搜索跨容器连接问题导致产生了线索,最终为我工作。

此问题-https://github.com/docker/for-mac/issues/2705-按住了键。将apiURL值更改为http://docker.for.mac.localhost:1337允许API在Strapi和Gatsby之间连接。因为有些同事使用PC,所以这种价值对我来说不太合适,因此似乎不太正确。进一步挖掘发现了有效的http://host.docker.internal:1337的apiURL值。与开发版本相比,我将在生产版本中测试所有这些内容,并查看它们如何承受。

© www.soinside.com 2019 - 2024. All rights reserved.