我正在为Java应用程序编写Dockerfile,但是我在卷上挣扎:装入的卷为空。
我已经阅读了Dockerfile引用指南和编写Dockerfile的最佳实践,但是,起初,我的示例非常复杂。

我想要做的是能够在主机上具有以下项(在已安装的卷中):

  • 配置文件夹,
  • 日志文件夹,
  • 数据文件夹,
  • 属性文件

  • 让我总结一下:
    当将应用程序安装为(使用RUN命令从tar.gz中提取)时,它将写入一堆文件和目录(包括log和conf)。
    当应用程序由启动(使用CMD或ENTRYPOINT)时,它将创建一个数据文件夹(如果不存在)并将数据文件放入其中。

    我只对:
  • / rootapplicationfolder / conf_folder
  • / rootapplicationfolder / log_folder
  • / rootapplicationfolder / data_folder
  • / rootapplicationfolder / properties_files

  • 我对/ rootapplicationfolder / binary_files不感兴趣

    我看不到东西。我已阅读并应用了以下两个链接中的信息,但均未成功。

    问题:
    我应该只使用/ rootapplicationfolder来“mkdir”仅映射主机上的顶级目录吗?

    Dockerfile中'VOLUME'的顺序重要吗?
    是否需要在放气之前或之后放置它(RUN tar zxvfcompressed_application)?

    https://groups.google.com/forum/#!topic/docker-user/T84nlzw_vpI

    Docker on Linux - Empty mounted volumes

    最佳答案

    尝试使用Docker-compose,使用volumes属性设置要在计算机和容器之间挂载的路径。

    版本2示例

    web:
    image: my-web-app
    build:.
    command: bash -c "npm start"
    ports:
      - "8888:8888"
    volumes:
      - .:/home/app/code         (This mount your current path with /home/app/code)
      - /home/app/code/node_modules/          (unmount sub directory)
    environment:
      NODE_ENV: development
    

    您也可以查看此存储库。
    https://github.com/williamcabrera4/docker-flask/blob/master/docker-compose.yml

    关于docker - 想要具有Docker卷的持久性数据,但具有空目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46554507/

    10-11 17:44