背景说明:由于公司项目众多,nginx重写复杂,各种缓存等原因导致开发环境搭建很麻烦,开发效率低下。
无需本地安装docker环境。
用一台配置还不错的服务器,安装好docker环境。
docker安装说明:https://docs.docker.com/engine/installation/
使用rancher主要为了方便管理容器,可视化的界面可以让不会docker的人也能使用。
rancher安装说明:http://rancher.com/docs/rancher/v1.6/zh/
sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable
安装好rancher后 访问 http://
在应用添加负载均衡服务,主要为外部域名访问到不同容器。
刚开始本来用Samba, 但担心服务器挂掉后代码无法查看,所以才选用syncthing,就算磁盘坏掉都不用担心代码丢失。
在rancher页面上添加或直接run容器,注意需要将数据目录挂载出来
docker run --network=host \
-v /wherever/st-cfg:/var/syncthing/config \
-v /wherever/st-sync:/var/syncthing \
syncthing/syncthing:latest
启动后,访问 http://
使用说明:https://docs.syncthing.net/index.html
syncthing跨所有平台,下载自己系统相应的版本 https://syncthing.net/
下载实时同步插件 Syncthing-inotify https://github.com/syncthing/syncthing-inotify
启动syncthing客户端,web访问 http://127.0.0.1:8384
启动Syncthing-inotify,这样修改文件会实时同步。
添加远程设备,设置远程设备ID(操作->显示ID),服务器端和本地都需要相互添加。
本地syncthing,添加文件夹,设名称和路径,并共享给服务端,保存。
注意:在同步文件路径根目录添加 .stignore 文件,忽略掉不需要同步的文件或文件夹。例如:
.svn
.git
.idea
down/
phperrorlog/
*.zip
testUnit/
temp/
FonDoc/
tests/
test/
客户端保存后,服务端syncthing,会自动提示有客户端共享文件,修改好服务端保存路径。
启动web容器,注意代码挂载路径。也可将php和nginx配置文件挂载出来,便于实时修改。
version: '2'
services:
dongxu-php56:
image: dzer/php-meilele-dev:v1
environment:
DOCUMENT_ROOT: /app
stdin_open: true
volumes:
- /data/syncthing/dongxu/meilele:/app:rw
- /data/syncthing/meilele_nginx_conf:/usr/local/nginx/conf:rw
- /data/syncthing/meilele_php_conf:/usr/local/php/etc:rw
tty: true
extra_hosts:
- common.meilele.com:127.0.0.1
- memcache.meilele.com:192.168.0.250
- clubmemcache.meilele.com:192.168.0.250
- codememc.meilele.com:192.168.0.250
- zxmemcache.meilele.com:192.168.0.250
- adminmemcache.meilele.com:192.168.0.250
- wapmemc.meilele.com:192.168.0.250
- rule.meilele.com:192.168.0.22
- ip.meilele.com:192.169.0.250
- ipadmemcache.meilele.com:192.168.0.250
- imgmemcache.meilele.com:192.168.0.250
- dcmemcache.meilele.com:192.168.0.250
- factory.meilele.com:192.168.0.250
- zxback.meilele.com:127.0.0.1
- slave.meilele.com:192.168.0.23
在rancher lb中添加需要访问的域名,并指向相应的容器。
将需要访问的域名和服务器ip 添加到 本地hosts