如何执行从localhost CLI到docker容器的迁移

eqqqjvef  于 2023-08-03  发布在  Docker
关注(0)|答案(1)|浏览(98)

我正在使用Docker和Docker Composes进行一个项目。目前,我有两个容器:一个用于PostgreSQL服务器,另一个用于应用程序。我正在使用TypeORM作为ORM,并尝试从CLI运行迁移。但是,数据库被配置为与Docker容器连接。因此,当我尝试使用TypeORM CLI运行迁移时,它找不到主机,因为它在我的本地计算机上不存在。有没有人对我该如何进行有什么建议?
我在等你的建议或者更好的方法

dm7nw8vv

dm7nw8vv1#

每个Docker容器都在启动容器时包含的特定端口上暴露给您的本地网络。例如,如果在docker-compose文件中指定端口,如下所示:

ports:
  - '5432:9000'

字符串
这将把容器中5432端口(应该是你的数据库服务器)上的内容暴露给本地主机的9000端口(确保这个端口没有被任何其他应用程序占用,例如你自己的本地PostgreSQL服务器)。
因此,在您的本地网络上选择一个端口,在docker-compose文件中指定它,重新启动它,并通过使用数据库的客户端(例如pgAdmin)查看它是否真正暴露。
现在,您只需要为TypeORM CLI指定一个不同的选项,并使用凭据访问Docker容器中的db服务器,以便在其中运行迁移。你可以通过提供一个不同的ormconfig来实现:

typeorm migration:run -d docker-ormconfig.json

相关问题