【发布时间】:2021-08-12 02:13:11
【问题描述】:
我有一个相当复杂的应用程序,我在客户端有下一个 js,在后端我有 graphql,我有 nginx 作为反向代理。
我正在索引页面上使用下一个 JS 增量静态站点重新生成功能,这就是为什么我希望我的服务器在我的客户端容器开始构建之前启动并运行,因为当我运行 npm run build 时,它将从 graphql 获取一些数据这里的服务器是我的 docker compose 文件
version: "3"
services:
mynginx:
container_name: mynginx
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 80:80
graphql:
container_name: graphql_server
depends_on:
- mynginx
build:
context: ./server
dockerfile: Dockerfile
mynextjs:
container_name: nextjs_server
depends_on:
- graphql
build:
context: ./client
dockerfile: Dockerfile
【问题讨论】:
-
你可以使用depends_on键docs.docker.com/compose/compose-file/compose-file-v3/…
-
我不清楚这种方法是否可行:Docker 映像构建永远不会连接到任何特定的 Docker 网络,并且它无法联系您的服务器,即使它确实首先启动。如果“静态”页面将通过在运行时从服务器容器中获取来增量构建,你能避免在构建时生成任何东西吗?
-
只是让客户端失败,但是设置
restart=always。客户端将继续死亡,直到服务器准备好,只有最后一个会存活。这是首选方法。 -
@Prince Tanwar,我也遇到了同样的问题,你解决了吗?
标签: node.js docker docker-compose next.js