【发布时间】:2016-11-04 06:23:57
【问题描述】:
我来这里是因为我用 Symfony3 开发了一个应用程序。我对应用程序的部署有一些疑问。 其实我用的是docker-compose:
version: '2'
services:
nginx:
build: ./docker/nginx/
ports:
- 8081:80
volumes:
- .:/home/docker:ro
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
networks:
- default
php:
build: ./docker/php/
volumes:
- .:/home/docker:rw
- ./docker/php/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro
working_dir: /home/docker
networks:
- default
dns_search:
- php
db:
image: mariadb:latest
ports:
- 3307:3306
environment:
- MYSQL_ROOT_PASSWORD=collectionManager
- MYSQL_USER=collectionManager
- MYSQL_PASSWORD=collectionManager
- MYSQL_DATABASE=collectionManager
volumes:
- mariadb_data:/var/lib/mysql
networks:
- default
dns_search:
- db
search:
build: ./docker/search/
ports:
- 9200:9200
- 9300:9300
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
networks:
- default
dns_search:
- search
volumes:
mariadb_data:
driver: local
elasticsearch_data:
driver: local
networks:
default:
nginx很清楚,引擎是PHP-FPM加一些扩展和composer,db是MariaDB,搜索ElasticSearch加一些插件。
在我不使用 Docker 和部署之前,我使用 Megallanes 或 Deployer,当我想部署 webapp 时。
使用 Docker,我可以使用 docker-compose 文件并在服务器上重新创建图像和容器,我还可以将容器保存在图像和 tar 存档中并将其加载到服务器上。 nginx 和 php-fpm 都可以,但是 elasticsearch 和 db 呢?因为我需要保留数据以供将来更新代码。然后,当我部署代码时,我需要执行 Doctrine Migration 和一些命令,而 Deployer 可以完美地完成其他一些有趣的事情。以及如何使用 Docker 部署代码?我们可以同时使用吗?部署代码和 Docker 服务?
非常感谢您的帮助。
【问题讨论】:
标签: symfony docker deployment web-deployment docker-compose