我正在使用Docker和Docker Composes进行一个项目。目前,我有两个容器:一个用于PostgreSQL服务器,另一个用于应用程序。我正在使用TypeORM作为ORM,并尝试从CLI运行迁移。但是,数据库被配置为与Docker容器连接。因此,当我尝试使用TypeORM CLI运行迁移时,它找不到主机,因为它在我的本地计算机上不存在。有没有人对我该如何进行有什么建议?我在等你的建议或者更好的方法
dm7nw8vv1#
每个Docker容器都在启动容器时包含的特定端口上暴露给您的本地网络。例如,如果在docker-compose文件中指定端口,如下所示:
ports: - '5432:9000'
字符串这将把容器中5432端口(应该是你的数据库服务器)上的内容暴露给本地主机的9000端口(确保这个端口没有被任何其他应用程序占用,例如你自己的本地PostgreSQL服务器)。因此,在您的本地网络上选择一个端口,在docker-compose文件中指定它,重新启动它,并通过使用数据库的客户端(例如pgAdmin)查看它是否真正暴露。现在,您只需要为TypeORM CLI指定一个不同的选项,并使用凭据访问Docker容器中的db服务器,以便在其中运行迁移。你可以通过提供一个不同的ormconfig来实现:
5432
9000
typeorm migration:run -d docker-ormconfig.json
型
1条答案
按热度按时间dm7nw8vv1#
每个Docker容器都在启动容器时包含的特定端口上暴露给您的本地网络。例如,如果在docker-compose文件中指定端口,如下所示:
字符串
这将把容器中
5432
端口(应该是你的数据库服务器)上的内容暴露给本地主机的9000
端口(确保这个端口没有被任何其他应用程序占用,例如你自己的本地PostgreSQL服务器)。因此,在您的本地网络上选择一个端口,在docker-compose文件中指定它,重新启动它,并通过使用数据库的客户端(例如pgAdmin)查看它是否真正暴露。
现在,您只需要为TypeORM CLI指定一个不同的选项,并使用凭据访问Docker容器中的db服务器,以便在其中运行迁移。你可以通过提供一个不同的ormconfig来实现:
型