php – 与vagrant,docker和git的项目布局
所以我最近发现了docker和vagrant,我正在开始一个新的Php项目,我想要同时使用它们:
Vagrant为了拥有一个所有开发人员都可以使用的可互换环境. Docker用于生产,但也在流浪机内,因此开发环境尽可能地与生产环境相似. 第一种方法是使用此布局将所有定义文件与源代码一起放在同一存储库中: /docker /machine1-web_server /Dockerfile /machine2-db_server /Dockerfile /machineX /Dockerfile /src /app /public /vendors /vagrant /Vagrantfile 因此,流氓机器在配置时运行所有docker“机器”并正确设置数据库和源代码. 这是一个好方法吗?我仍在试图弄清楚它在部署到生产方面的效果如何.
是的,至少它几个月以来对我有用. 不同的是我还有一个 在我的Vagrantfile中有一个第一个配置部分,用于安装docker,pip和docker-compose: config.vm.provision "shell",inline: <<-SCRIPT if ! type docker >/dev/null; then echo -e "nn========= installing docker..." curl -sL https://get.docker.io/ | sh echo -e "nn========= installing docker bash completion..." curl -sL https://raw.githubusercontent.com/dotcloud/docker/master/contrib/completion/bash/docker > /etc/bash_completion.d/docker adduser vagrant docker fi if ! type pip >/dev/null; then echo -e "nn========= installing pip..." curl -sk https://bootstrap.pypa.io/get-pip.py | python fi if ! type docker-compose >/dev/null; then echo -e "nn========= installing docker-compose..." pip install -U docker-compose echo -e "nn========= installing docker-compose command completion..." curl -sL https://raw.githubusercontent.com/docker/compose/$(docker-compose --version | awk 'NR==1{print $NF}')/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose fi SCRIPT 最后是一个触发docker-compose的配置部分: config.vm.provision "shell",inline: <<-SCRIPT cd /vagrant docker-compose up -d SCRIPT 有来自vagrant的other ways构建和启动docker容器,但是使用docker-compose允许我从我的Vagrantfile中外化任何docker特性.因此,这个Vagrantfile可以在没有更改的情况下重用于其他项目;你只需要提供一个不同的docker-compose.yml文件. 我做的另一件事是将Vagrantfile放在项目的根目录(而不是在vagrant目录中),因为它是人和工具(某些IDE)期望找到它的地方. PyCharm确实如此,PhpStorm可能会这样做. 我还将docker-compose.yml文件放在项目的根目录下. 最后,为了开发我只是去我的项目目录并启动vagrant,告诉docker-compose(最终构建)运行docker容器.
对于部署到生产,通常的做法是通过在私有docker registry上发布您的docker镜像到ops团队.您可以在自己的基础架构上托管这样的注册表,也可以使用提供它们的在线服务,如Docker Hub. 还为ops团队提供了一个 这个Docker blog article可以帮助弄清楚如何使用docker-compose和docker-swarm在集群上进行部署. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |