docker搭建统一开发环境


docker搭建统一开发环境

背景说明:由于公司项目众多,nginx重写复杂,各种缓存等原因导致开发环境搭建很麻烦,开发效率低下。

无需本地安装docker环境。

软件清单

  • docker 服务器
  • rancher 容器管理平台
  • syncthing 文件同步

1. 准备docker环境

用一台配置还不错的服务器,安装好docker环境。

docker安装说明:https://docs.docker.com/engine/installation/

2. 安装rancher

使用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://<SERVER_IP>:8080

3. 添加负载均衡服务

在应用添加负载均衡服务,主要为外部域名访问到不同容器。

4. 添加syncthing

刚开始本来用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://<SERVER_IP>:8384
使用说明:https://docs.syncthing.net/index.html

5.本地安装syncthing

syncthing跨所有平台,下载自己系统相应的版本 https://syncthing.net/

下载实时同步插件 Syncthing-inotify https://github.com/syncthing/syncthing-inotify

启动syncthing客户端,web访问 http://127.0.0.1:8384

启动Syncthing-inotify,这样修改文件会实时同步。

添加远程设备,设置远程设备ID(操作->显示ID),服务器端和本地都需要相互添加。

6. 设置需要同步的代码

本地syncthing,添加文件夹,设名称和路径,并共享给服务端,保存。

注意:在同步文件路径根目录添加 .stignore 文件,忽略掉不需要同步的文件或文件夹。例如:

.svn
.git
.idea
down/
phperrorlog/
*.zip
testUnit/
temp/
FonDoc/
tests/
test/

客户端保存后,服务端syncthing,会自动提示有客户端共享文件,修改好服务端保存路径。

7. rancher添加web容器

启动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

8.rancher lb-service添加域名

在rancher lb中添加需要访问的域名,并指向相应的容器。

9.修改本地hosts

将需要访问的域名和服务器ip 添加到 本地hosts


常常是最后一把钥匙打开了门