代码之家  ›  专栏  ›  技术社区  ›  human

在构建docker容器时在装入的卷上创建文件

  •  0
  • human  · 技术社区  · 7 年前

    • 我通过执行以下操作来编写文件 RUN echo "Some line to add to a file" >> /var/www/public/text.txt 在…上 Dockerfile

    • docker-compose.yml

      version: '2'
      
      services:
      web:
          build: web/
          ports:
              - "8080:80"
          volumes:
              - ./web/:/var/www/
          env_file:
              - web/.env
      
    • 我执行 docker-compose up --build

    • 那么我会的 docker exec -it <container id> bash
    • cd 到文件夹 /var/www/public 文件呢 text.txt 不是吗

    有什么想法吗?

    2 回复  |  直到 7 年前
        1
  •  3
  •   BMitch    7 年前

    卷装载在运行时应用,而不是在生成期间应用。构建的输出是一个可移植的映像,而不是一个映像和一些需要单独发布的持久数据。该文件应存在于图像中,具体取决于Dockerfile的其余部分。

    但是,如果切换到命名卷,docker将在该卷为新卷/空卷时初始化该卷,并在该位置显示映像的内容。

        2
  •  0
  •   Nikhil Chhabria    7 年前

    您应该在docker-compose.yml文件中运行该命令- 版本:“2”

    services:
    web:
        build: web/
        ports:
            - "8080:80"
        volumes:
            - ./web/:/var/www/
        env_file:
            - web/.env
        command:"echo "Some line to add to a file" >> /var/www/public/text.txt "
    

    推荐文章