我正在尝试使用Docker实现某些功能,但遇到了困难,以下是我的问题:
我的容器托管在EC2上,并包含我的Web应用程序。我的Web应用程序使用JCR存储库作为数据库,它基本上是一个文件存储在您想要的位置。因此,每次启动我的Web应用程序时,如果存储库不存在,则会创建它,否则会使用现有的存储库。
我的当前Docker文件看起来像这样https://gist.github.com/agonist/7cab7358379e9dd6e812 ./chameleon.sh start只启动我的Web应用程序。在此应用程序中,我配置了存储库文件的位置。
现在,我创建了一个EBS卷并将其挂载到我的EC2实例中。该卷将专门用于存储存储库。因此,基本上,在我的应用程序中,我将我的存储库路径配置为
我的容器托管在EC2上,并包含我的Web应用程序。我的Web应用程序使用JCR存储库作为数据库,它基本上是一个文件存储在您想要的位置。因此,每次启动我的Web应用程序时,如果存储库不存在,则会创建它,否则会使用现有的存储库。
我的当前Docker文件看起来像这样https://gist.github.com/agonist/7cab7358379e9dd6e812 ./chameleon.sh start只启动我的Web应用程序。在此应用程序中,我配置了存储库文件的位置。
现在,我创建了一个EBS卷并将其挂载到我的EC2实例中。该卷将专门用于存储存储库。因此,基本上,在我的应用程序中,我将我的存储库路径配置为
/mnt/repository/
,其中存储库是包含由我的Web应用程序创建的存储库文件的目录。
但我不知道如何在Dockefile中的./chameleon.sh start
之前将此卷挂载到我的容器中。根据我的研究,我看到docker run -v /mnt/repository:/mnt/repository aws_beanstalk/current-app
在Dockerfile中无法执行。
我还发现了关于数据容器的内容,它们与另一个容器共享卷,但如果我必须运行,则仍然存在相同的问题。
sudo docker run -d --volumes-from dbdata
容器启动后