如何在Docker Compose中像运行脚本一样运行脚本

我意识到可能有多种方式来做到这一点,我想知道所有这些权衡是什么。

我有一个由docker Compose设置的一组节点。 他们都必须使用相同的PostGRESQL数据库(这是一个外部容器,与外部链接连接)。

我想运行一个启动脚本来创build这些数据库和表。 其中一个节点是node.js,这使得安装PSQL很困难(因为它不能从OS映像inheritance)。

我想避免连接到服务器的节点组的所有者。 理想情况下,他们应该在其存储库中转储一个SQL文件,这应该会自动为他们创build数据库和表。

关于如何在构build容器时运行一次脚本的任何想法/最佳实践?

这是我的docker – 撰写

version: '2' services: web: build: 'main_server' ports: - 3000 external_links: - some-postgres:postgres network_mode: bridge backend: build: 'data_controller' network_mode: bridge 

这是我想要导入的PostGRESQL文件:

 CREATE USER docker; GRANT ALL PRIVILEGES ON DATABASE bzucker3_db TO docker; CREATE TABLE location ( id varchar(12), location varchar(50), name varchar(30) PRIMARY KEY, building_name varchar(90), building_id varchar(30), floor varchar(1), room varchar(30) ); CREATE TABLE count ( clientCount int, clientCount_2_4GHz int, clientCount_5GHz int, name varchar(30) PRIMARY KEY, );