Docker开发环境
推荐使用Docker方式搭建开发环境,项目负责人需在项目根目录下配置docker-composer.yml,参考案例如下:
version: "3"
services:
frameworks.dev:
image: tinson/centos6.8-php7.0
expose:
- 80
depends_on:
- memcache.dev
- redis.dev
volumes:
- ".:/www/frameworks"
restart: always
environment:
VIRTUAL_HOST: api.frameworks-dev.hetiansu.com,admin.frameworks-dev.hetiansu.com
YII_ENV: "dev"
container_name: frameworks.dev
entrypoint: "/www/frameworks/assets/sh/entrypoint.sh"
memcache.dev:
image: memcached
restart: always
container_name: memcache.frameworks.dev
redis.dev:
image: redis
restart: always
container_name: redis.frameworks.dev
networks:
default:
external:
name: nginx-proxy
搭建Docker环境
- 安装Docker环境
- MAC
- 官网:
https://www.docker.com/docker-mac - 链接:
https://pan.baidu.com/s/1vM819JjWaXT2e8btT4qq6Q 密码: ayz3
- 官网:
- WINDOWS
- 官网:
https://www.docker.com/docker-windows - 链接:
链接: https://pan.baidu.com/s/1WajtmjcdjS-0E3HPEEzpjg 密码: 8cd3
- 官网:
- MAC
- 启动Nginx-Proxy代理
- 创建本地开发环境docker Network
$ docker network create nginx-proxy - 启动Nginx-Proxy镜像,该镜像将监控上一步创建的nginx-proxy network内的所有新VIRTUHOST添加,并自动增加反向代理
$ docker run -d -p 80:80 --name nginx-proxy --net nginx-proxy --restart always -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
- 创建本地开发环境docker Network
启动项目服务
$ git clone {项目git地址} {本地项目目录} # 拷贝代码仓库到本地目录
$ cd {本地项目目录} # 进入本地目录
$ docker-compose up --force-recreate --remove-orphans -d
$ docker ps # 查看执行的容器
$ docker exec -it {container_name} sh # 登入进容器
配置本地解析
给项目相关域名配置本地host 127.0.0.1 admin.frameworks-dev.hetiansu.com api.frameworks-dev.hetiansu.com
附加说明
如果本地已经有搭建了Web服务器,上述启动Nginx-Proxy会有80端口冲突问题,可修改端口映射规则,命令如下
$ docker run -d -p 20001:80 --name nginx-proxy --net nginx-proxy --restart always -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
另外需在Web服务配置代理转发,以下为Nginx的配置模板
server {
listen 80;
server_name admin.frameworks-dev.hetiansu.com api.frameworks-dev.hetiansu.com;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:20001;
}
}
docker相关命令
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。完整的命令列表如下:
build 构建或重建服务
help 命令帮助
kill 杀掉容器
logs 显示容器的输出内容
port 打印绑定的开放端口
ps 显示容器
pull 拉取服务镜像
restart 重启服务
rm 删除停止的容器
run 运行一个一次性命令
scale 设置服务的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器
常用docker命令
创建容器: docker-compose up --force-recreate --remove-orphans 前台启动(-d 后台启动)
进入容器: docker exec -it ${appName}.dev sh
开启容器: docker-compose start
停止容器: docker-compose stop
删除容器: docker-compose down