我意识到可能有多种方法可以做到这一点,我想知道所有这些方法的权衡取舍。
我有一组由docker Compose设置的节点。它们都必须使用相同的PostGRESQL数据库(它是一个容器外部,与外部链接连接)。
我想运行一个启动脚本来为这些创建数据库和表。其中一个节点用于node.js,这使得安装PSQL变得困难(因为它不会从OS映像继承)。
我想避免连接到服务器的节点组的所有者。理想情况下,他们应该在其存储库中转储SQL文件,这应该自动为它们创建数据库和表。
关于如何在构建容器时运行一次脚本的任何想法/最佳实践?
这是我的docker-compose
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,
);