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

标签 javascript docker docker-compose dockerfile next.js

我正在尝试在我的 getStaticProps 中发送请求从另一个 docker 容器到我的后端 api 的函数。但是,即使 api url 写入正确,静态页面仍然没有创建。这是因为要构建静态页面,后端应该已经启动,并且由于是构建时间,另一个容器还没有启动并等待构建完成,没有后端就无法完成构建.
那么这种方法的解决方案是什么?我尝试设置 depends_on对我的另一个容器的值(value),仍然不起作用。你会建议什么解决方案?

最佳答案

我能想到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 network

关于javascript - 无法在构建期间使用 docker 在 next.js 中发送请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67162429/

相关文章:

docker - Prometheus cAdvisor docker 监控

docker - HBase主Docker容器完成初始化后自动运行脚本

ruby-on-rails - Docker - PG::ConnectionBad

javascript - 根据所选的 'name' 类,将 'select' 属性添加到 'li' 标签

javascript - jquery如何在不刷新页面的情况下刷新表格?

JavaScript Array.splice() 方法第一个参数(起始索引)

javascript - 如何让图像在滚动时保持在div框内

docker - 击中 Docker 容器时对等方重置连接

docker - 在Rootless模式下运行Docker时是否可以使用桥接网络?

docker - 尝试通过docker-compose为mariadb运行迁移时出错