我想知道是否可以在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
这两个步骤可以正常工作。但是我很想知道是否可以一步一步。
每次我想运行此命令。数据库始终是新的,这一点很重要。这就是为什么我不将其保留在volume
中并想运行此命令的原因。
是否可以运行docker-compose up
并同时运行psql
命令?
谢谢!
答案 0 :(得分:5)
纯docker-compose解决方案,具有音量
volumes:
- ./data.sql:/docker-entrypoint-initdb.d/init.sql
根据dockerfile,在启动时,它将转储docker-entrypoint-initdb.d
中的每个sql数据