从docker-compose v.3文件

时间:2018-02-12 11:20:57

标签: docker docker-compose

我正在学习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文件中管理容器,在容器创建之后)

非常感谢

1 个答案:

答案 0 :(得分:0)

根据我的理解,您希望docker-compose在每次运行后删除/删除容器,以便每次运行构建,并且每次启动服务时都可以将新的prova.sql文件复制到映像中。 --force-recreate flag可能就是您所需要的。

yaml文件中的command指令提供在容器内运行的命令。