无法在next.js中使用docker在构建期间发送请求?

我正在尝试将我的getStaticProps函数中的请求从另一个 docker 容器发送到我的后端 api。但是,即使 api url 写入正确,仍然没有创建静态页面。这是因为要构建静态页面,后端应该已经启动,并且因为是构建时另一个容器尚未启动并等待构建完成并且没有后端就无法完成构建.

那么这种方法的解决方案是什么?我尝试将depends_on值设置为我的另一个容器,但仍然无效。你会建议什么解决方案?

回答

我能想到2种解决方案。

显然,Next.js 构建失败是因为它查询的服务没有运行。因此,为什么不构建并启动它明确依赖的服务,然后像这样构建其余的服务。

docker-compose build some_services
docker-compose up -d some_services
docker-compose build the_rest

这样 Next.js 应用程序将能够发出请求。请记住,您仍然需要正确配置端口和网络。很确定这将解决问题。

3.4+如果我没记错的话,一个更“花哨”的解决方案是使用在更高版本中添加的构建时网络。

docker-compose.yml

build:
    context: ./service_directory
    network: some_network
   

更多细节请参见Docker-compose 网络


以上是无法在next.js中使用docker在构建期间发送请求?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>