如何在Docker Compose中运行类似脚本的任务

时间:2016-11-11 15:31:37

标签: postgresql docker docker-compose

我意识到可能有多种方法可以做到这一点,我想知道所有这些方法的权衡取舍。

我有一组由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,
);

0 个答案:

没有答案