使用docker-compose如何在容器和主机之间同步代码

Questions分类: nginx使用docker-compose如何在容器和主机之间同步代码
guest asked 5月 ago

直到现在,我一直都是在本机环境架设LAMP来开发我的web项目并手动把它们部署到服务器。在下一个项目,我想尝试使用docker和docker-compose来创建一个mariaDB,Nginx和项目容器,来使开发和部署更容易些。

当在开发时,我要把主机上的代码与容器同步,我知道可以执行以下命令实现。

  1. docker run -dt --name containerName -v /path/on/host:/path/in/container

不过我想在docker-compose v2文件中配置。
现在我的docker-compose.yml文件如下:

  1. version: '2'
  2.  
  3. services:
  4.     db:
  5.         #[...]
  6.     myProj:
  7.         build: ./myProj
  8.         image: myProj
  9.         depends_on:
  10.             - db
  11.         volumes:
  12.             myCodeVolume:/var/www
  13. volumes:
  14.     myCodeVolume:

我如何同步容器中的/var/www目录到主机中。

1 Answers
朱 茂海 管理员 answered 5月 ago

我跟你也差不多是这样做,可以在services.myProj.volumes下直接映射host:container:

version: ‘2’
services:

myProj:

volumes:
/path/to/file/on/host:/var/www

这个文件会翻译为:

docker create –links db -v /path/to/file/on/host:/var/www myProj

当docker-compose找到顶层的volumes区域,它尝试执行docker volume create。所以将翻译为:

docker volume create myCodeVolume
docker create –links db -v myCodeVoume:/var/www myProj

有服务器方面的问题无法解决?点击这里寻求帮助。