首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getStaticProps函数中nextjs中两个码头容器的连接

getStaticProps函数中nextjs中两个码头容器的连接
EN

Stack Overflow用户
提问于 2022-08-19 20:13:08
回答 1查看 95关注 0票数 0

我有两个独立的docker文件,一个用于在nginx web服务器上运行nextjs,另一个用于在另一个nginx上运行Laravel:

代码语言:javascript
复制
    services:

  frontendx:
    container_name: next_appx
    build:
      context: ./frontend
      dockerfile: Dockerfile
    restart: unless-stopped
    volumes:
      - ./frontend:/var/www/html/frontend
    networks:
      - app

      
  nginxy:
    container_name: nginxy
    image: nginx:1.19-alpine
    restart: unless-stopped
    ports:
      - '8080:80'
    volumes:
      - ./frontend:/var/www/html/frontend
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - frontendx
    networks:
      - app

以及:

代码语言:javascript
复制
services:
  backendx:
    container_name: laravelx
    build:
      context: .
      dockerfile: Dockerfile
    restart: unless-stopped
    ports:
      - '8000:8000'
    volumes:
      - ./:/var/www
      - enlive-vendor:/var/www/vendor
      - .//docker-xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
    depends_on:
      - dbx
    networks:
      - appx

  webserverx:
    image: nginx:alpine
    container_name: webserverx
    restart: unless-stopped
    tty: true
    ports:
      - "8090:80"
      - "443:443"
    volumes:
      - ./:/var/www
      - ./nginx/conf.d/:/etc/nginx/conf.d/
    networks:
      - appx

我可以通过axios连接到后端容器,地址如下:http://localhost:8090/api/my/api/address

但是,当我试图通过getStaticProps获取数据时,我得到了ECONNREFUSED连接错误:

代码语言:javascript
复制
  const res = await fetch(`http://localhost:8090/api/address`)

我试图用容器ip地址替换本地主机,比如: 172.20.0.2,但是我得到了504 Gateway错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-19 22:33:39

这是意料之中的。

使用axios,您从从主机网络发出请求的浏览器调用。

但是getStaticProps是一个SSR函数,运行在您的nextjs容器中。因此,它必须能够在app网络中找到您的后端。

现在通过您的设置,前端和后端应用程序在不同的孤立网络中,您不能这样连接它们。但是,如果将所有服务都放在同一个网络中,假设您的app(而不是appx)网络,您可以很容易地使用docker:

代码语言:javascript
复制
  const res = await fetch(`http://webserverx/api/address`)

Docker知道如何将webserverx解析为您的webserverx容器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73421830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档