使用docker swarm撰写/ yaml文件创build一个目录

有没有办法通过yaml文件在本地文件系统上创build一个目录,如果它不存在? 我目前正在从我的本地文件系统在容器中安装一个目录,它的工作原理。 但是,如果文件系统上的目录不存在,容器启动失败,因为无法装入目录。 我怎样才能使这个尽可能无缝,并在群yaml文件中embedded目录创build逻辑?

据我所知, docker-compose不允许这样做,你可能必须手工完成。

但是,您也可以使用puppet或ansible这样的自动化工具来处理这个步骤来部署您的应用程序,并创build相应的目录并设置您的服务器。

下面是你的任务看起来像一个可靠的手册 ,部署一个简单的应用程序,并创build一个目录来装载你的容器卷,例如:

 - name: copy docker content copy: src: /path/to/app_src dest: /path/to/app_on_server - name: create directory for volume file: name: /path/to/mountpoint state: directory - name: start containers shell: docker-compose up -d --build args: chdir: /path/to/app_on_server 

(请注意,这个片段是为了提供这个概念的一般概念,您可能必须设置成指令 ,权限,所有权,软件安装以及其他非常特定于您的应用程序的步骤)

最干净的方法是,例如从官方的Nginx镜像中得到Dockerfile ,并Dockerfile添加一个额外的RUN mkdir /my/folder

之后,您将通过docker build .为Nginx构build自己的Docker镜像docker build . 。 然后你有一个干净的图像,其中包含你需要根据官方来源。