Docker compose 搭建php本地開發環境(php+mysql+nginx)
阿新 • • 發佈:2021-01-22
PHP負載+mysql主備+nginx
本地開發如果不用負載,就在下面的docker-compose.yml裡面註釋掉myphp2的配置就好了,mysql不主備也一樣,註釋掉mysql-slave就好了。
前期準備
1、拉取映象到本地
我使用的映象裡面mysql和nginx都是直接從官方拉取下來的,php:7.1.9-fpm-new 是我自己用Dockerfile構建的,裡面安裝上一下常用擴充套件之類的。
2、安裝 docker-compose
以下內容需要儲存到docker-compose.yml檔案裡面
version: "3" services: #nginx 服務 webserver: image: nginx volumes: - "/Users/linzehui/www:/usr/share/nginx/html" - "/Users/linzehui/work/docker_project/nginx/conf/conf.d:/etc/nginx/conf.d" depends_on: #啟動依賴 - myphp1 #先啟動myphp1 - myphp2 #再先啟動myphp2,最後再啟動 webserver networks: - web-net #自己先建立的網路,容器直接可以互通 ports: - "80:80" - "443:443" container_name: webserver #容器名稱 #php服務1 myphp1: image: php:7.1.9-fpm-new volumes: - "/Users/linzehui/www:/var/www/html" networks: - web-net command: php-fpm #啟動容器後執行的命令 container_name: myphp1 #php服務2(沒有啟用) myphp2: image: php:7.1.9-fpm-new volumes: - "/Users/linzehui/www:/var/www/html" networks: - web-net command: php-fpm container_name: myphp2 #Mysql-Master mysql-master: image: mysql:5.7 ports: - "3339:3306" environment: MYSQL_ROOT_PASSWORD: "123456" MYSQL_ROOT_HOST: "%" volumes: - "/Users/linzehui/work/docker_project/mysql/master/data:/var/lib/mysql" # 掛載資料目錄 - "/Users/linzehui/work/docker_project/mysql/master/config:/etc/mysql/conf.d" # 掛載配置檔案目錄 networks: - web-net container_name: mysql-master #Mysql-Slave mysql-slave: image: mysql:5.7 ports: - "3340:3306" environment: MYSQL_ROOT_PASSWORD: "123456" MYSQL_ROOT_HOST: "%" volumes: - "/Users/linzehui/work/docker_project/mysql/slave/data:/var/lib/mysql" # 掛載資料目錄 - "/Users/linzehui/work/docker_project/mysql/slave/config:/etc/mysql/conf.d" # 掛載配置檔案目錄 networks: - web-net container_name: mysql-slave networks: web-net:
然後自己再配置好nginx相關內容,再從docker-compose.yml所在的目錄啟動容器:
docker-compose up -d
然後就可以正常訪問了~~