如何在 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数据
我想知道是否可以在 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