使用docker-compose 一键搭建开发环境,备忘
注:镜像全部是拷贝大神的,自己没去多研究,目前只要搭建环境成功即可
1. 本地创建目录 及文件,如下:
mkdir study/study
mkdir study/study/public
touch study/study/docker-compose.yml
touch study/study/public/index.php
echo “Hello World” >> study/study/public/index.php
2.拷贝如下内容到docker-compose.yml
version: '2'
services:
### Applications Code Container #############################
applications:
image: lzssing/true
volumes:
- ./:/var/www
### Workspace Utilities Container ###########################
workspace:
image: lzssing/workspace
volumes_from:
- applications
extra_hosts:
- "dockerhost:10.0.75.1"
ports:
- "22"
tty: true
networks:
- frontend
- backend
### PHP-FPM Container #######################################
php-fpm:
image: lzssing/php-fpm
volumes_from:
- applications
expose:
- "9000"
depends_on:
- workspace
extra_hosts:
- "dockerhost:10.0.75.1"
environment:
- PHP_IDE_CONFIG=laradock
networks:
- backend
### NGINX Server Container ##################################
nginx:
image: lzssing/nginx
volumes_from:
- applications
volumes:
- ../logs/nginx/:/var/log/nginx
ports:
- "80:80"
- "443"
depends_on:
- php-fpm
networks:
- frontend
- backend
### MySQL Container #########################################
mysql:
image: lzssing/mysql
environment:
- MYSQL_DATABASE=study
- MYSQL_USER=root
- MYSQL_PASSWORD=docker.18
- MYSQL_ROOT_PASSWORD=docker.18
volumes:
- ../data/mysql:/var/lib/mysql
ports:
- "3306:3306"
networks:
- backend
### Networks Setup ############################################
networks:
frontend:
driver: "bridge"
backend:
driver: "bridge"
### Volumes Setup #############################################
volumes:
mysql:
driver: "local"
3.进入文件夹study/study,执行命令docker-compose up -d,首次会从网上拉去5个docker镜像,运行成功后,可在浏览器输入localhost,输出Hello World.
4.通过docker ps -a查看容器,此时存在true、workspace、nginx、php-fpm、mysql五个容器,首次执行,mysql容器没有成功启动,需要修改study/data、study/logs文件夹的权限设置为777,然后在重新docker-compose up -d,进入各自的容器:
docker-compose exec workspace bash
docker-compose exec nginx bash
docker-compose exec mysql bash
5.要想运行Laravel项目,可进入workspace 容器进行相关操作,如composer、php artisan