如何在 docker-compose 文件中初始化 PSQL 数据库?

How to initialize a PSQL database in docker-compose file?

我想知道是否可以在 docker-compose 文件中执行 PSQL 命令。

我有以下 docker-compose.yml:

version: '3' 
services:
  postgres:
    image: postgres:9.6
    container_name: postgres-container
    ports:
      - "5432:5432"
    network_mode: host
    environment:
      - LC_ALL=C.UTF-8
      - POSTGRES_DB=databasename
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=
      - POSTGRES_PORT=5432

然后 运行 就可以了,我 运行 下面的命令: docker exec -i postgres-container psql -U username -d databasename < data.sql

这 2 个步骤效果很好。但我想知道是否可以一步到位

每次我都想运行这个命令。重要的是数据库总是新的。这就是为什么我不坚持 volume 并希望 运行 这个命令。

是否可以 运行 docker-compose up 以及 运行 psql 命令?

提前致谢!

纯docker-组成溶液体积大,

  volumes:
    - ./data.sql:/docker-entrypoint-initdb.d/init.sql

根据dockerfile,在启动时,它会在docker-entrypoint-initdb.d

中转储每个sql数据