我正在学习Docker,我已经迈出了第一步。
我要从compose文件'刷新'postgres图像来初始化db脚本,因为YOSIFKIT在这里通过shell(https://github.com/docker-library/postgres/issues/193)。
这是我的Docker文件:
FROM postgres:9.6.7
COPY docker-postgresql-9.6.7/prova.sql /docker-entrypoint-initdb.d/
这是我的撰写文件:
version: '3'
services:
postgresql_rdbms:
restart: always
image: postgres-prova
build:
context: ../
dockerfile: docker-postgresql-9.6.7/Dockerfile
command: bash -c "docker run -it --rm postgres-prova ls -ln /docker-entrypoint-initdb.d && docker run -it --rm postgres-prova && postgres"
environment:
PG_PASSWORD: postgres
ports:
- "5432:5432"
volumes:
- /srv/docker/postgresql:/var/lib/postgresql
我如何在撰写文件中插入命令来执行“docker run -it --rm imageToReload”??? 因为我已经看到compose文件中的“command:”在容器内工作,但我想在容器上操作,在上层(=在compose文件中管理容器,在容器创建之后)
非常感谢
答案 0 :(得分:0)
根据我的理解,您希望docker-compose在每次运行后删除/删除容器,以便每次运行构建,并且每次启动服务时都可以将新的prova.sql文件复制到映像中。 --force-recreate
flag可能就是您所需要的。
yaml文件中的command指令提供在容器内运行的命令。