gpt4 book ai didi

Vapor + PostgreSQL + Nginx 在 Docker 上构建无法正常运行

转载 作者:行者123 更新时间:2023-12-04 00:40:01 26 4
gpt4 key购买 nike

我使用docker为一个项目编写Vapor、PostgreSQL和Nginx,我的docker-compose.yml是这样的:

version: "3.6"

services:
vapor:
build:
context: ./vapor
image: ${CURRENT_VAPOR_IMG}
ports:
- 8080:8080
volumes:
- ${HOST_ROOT}:${CONTAINER_ROOT}
working_dir: ${CONTAINER_ROOT}
tty: true
entrypoint: bash
networks:
- x-net

nginx:
build:
context: ./nginx
image: ${CURRENT_NGINX_IMG}
ports:
- ${HOST_HTTP_PORT}:80
volumes:
- ${HOST_ROOT}:${CONTAINER_ROOT}
networks:
- x-net

psql:
image: ${CURRENT_DB_IMG}
ports:
- 5432:5432
environment:
- POSTGRES_DB=xxx
- POSTGRES_USER=xxx
- POSTGRES_PASSWORD=pass
volumes:
- ~/x/x-db:/var/lib/postgresql/data
networks:
- x-net

networks:
x-net:
driver: bridge

我运行docker-compose up启动所有容器后,进入vapor的容器构建&&运行项目,会在控制台提示错误:

NIO.ChannelError.connectFailed(NIO.NIOConnectionError(host: "localhost", port: 5432, dnsAError: nil, dnsAAAAError: nil, connectionErrors: [NIO.SingleConnectionFailure(target: [IPv6]localhost/::1:5432, error: connection reset (error set): Connection refused (errno: 61)), NIO.SingleConnectionFailure(target: [IPv4]localhost/127.0.0.1:5432, error: connection reset (error set): Connection refused (errno: 61))]))

然后我在本地机器上运行 vapor 项目并保持 psql 容器运行,它正常工作,比如完成了模型的第一次迁移。

是不是我配置的docker或者其他有什么错误?

最佳答案

要连接到容器内的数据库,请不要使用本地主机作为数据库主机,而是使用您的数据库容器名称。所以在你的情况下主机是 psql。这里你的 docker compose 格式不好 psql 和 nginx 必须多一个选项卡。但也许它只是格式错误。

关于Vapor + PostgreSQL + Nginx 在 Docker 上构建无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57422469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com