我正在为Java应用程序编写Dockerfile,但是我在卷上挣扎:装入的卷为空。
我已经阅读了Dockerfile引用指南和编写Dockerfile的最佳实践,但是,起初,我的示例非常复杂。
我想要做的是能够在主机上具有以下项(在已安装的卷中):
让我总结一下:
当将应用程序安装为(使用RUN命令从tar.gz中提取)时,它将写入一堆文件和目录(包括log和conf)。
当应用程序由启动(使用CMD或ENTRYPOINT)时,它将创建一个数据文件夹(如果不存在)并将数据文件放入其中。
我只对:
我对/ 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/