如何将两条Docker命令合并为一条并写入docker-compose配置文件?
解决方案
完全可以实现单命令启动,你只需要修改docker-compose-windows.yml中卷的声明配置即可:
调整逻辑
你当前配置里volumes节点下的external: true表示该卷是用户提前手动创建的外部资源,Docker Compose不会主动管理它的生命周期。去掉这个配置项后,Docker Compose执行up命令时会自动检测卷是否存在,不存在就会用默认的local驱动自动创建,和你手动执行docker volume create的效果完全一致。
如果你想和之前手动创建的参数完全对齐,也可以显式指定驱动:
volumes: northwind-pg-data: driver: local
修改后的完整配置
version: '3' services: db: image: postgres:12 environment: POSTGRES_DB: northwind POSTGRES_USER: northwind_user POSTGRES_PASSWORD: thewindisblowing volumes: - northwind-pg-data:/var/lib/postgresql/data - ./northwind.sql:/docker-entrypoint-initdb.d/northwind.sql ports: - "5432:5432" volumes: northwind-pg-data: driver: local
后续操作
修改保存配置后,你只需要执行以下一条命令即可完成所有启动操作:
docker-compose -f .\docker-compose-windows.yml up
第一次运行时会自动创建northwind-pg-data卷,后续重启、重建容器都不会丢失数据,和之前两步操作的效果完全一致。
内容的提问来源于stack exchange,提问作者ZedZip
相关产品推荐
相关产品推荐

