# Docker 安装 betterlife
# 运行须知
- Docker容器主要配置是Lnmp: Linux(Ubuntu) + nginx + mysql + php
- php安装有组件: gd, redis, mysqli zip
- php安装组件可在install/docker/Dockerfile 文件里进行添加会修改删除。
- 可在本地编辑php源文件,所见即所得,会立即在容器内生效运行生成结果。
- docker配置文件在安装路径下: install/docker/Dockerfile
- docker-compose配置文件在根路径下: docker-compose.yml
- 在容器内运行还需修改Gc.php文件相应配置
- 数据库配置: $database_config
- $database_config -> host = "mysql"
- 数据库的主机需配置为mysql,这是因为容器mysql服务器在docker-compose.yml配置中的服务名称定义就是mysql,这样php才能连上数据库。
- 数据库其它配置也参考docker-compose.yml中mysql定义配置进行修改
- $database_config -> host = "mysql"
- 数据库配置: $database_config
# 设置权限
由于是通过volume映射到容器内,容器内文件夹的权限由宿主机文件夹的权限决定,因此需要在宿主机本地执行以下指令赋予读写权限。
也可在容器运行起来后,进入容器内应用的文件位置执行以下指令赋予读写权限。
根路径下运行
sudo mkdir -p upload sudo chmod -R 777 upload sudo mkdir -p log sudo chmod -R 777 log sudo mkdir -p home/betterlife/view/bootstrap/tmp/templates_c sudo chmod -R 777 home/betterlife/view/bootstrap/tmp/templates_c sudo mkdir -p home/admin/view/default/tmp/templates_c sudo chmod -R 777 home/admin/view/default/tmp/templates_c sudo mkdir -p home/model/view/default/tmp/templates_c sudo chmod -R 777 home/model/view/default/tmp/templates_c sudo mkdir -p home/report/view/default/tmp/templates_c sudo chmod -R 777 home/report/view/default/tmp/templates_c
# 复制容器文件到本地
- 该操作为可选项,根据自己的需求决定:
- 复制安装的composer包文件到本地: docker cp bb:/var/www/html/betterlife/install/vendor/ $(pwd)/install/
- 复制安装好的UEditor包文件到本地: docker cp bb:/var/www/html/betterlife/misc/js/onlineditor/ueditor/ $(pwd)/misc/js/onlineditor/
# 本地开发调试应用
- 使用调试工具: Xdebug
- 主要用于在本地无法安装Xdebug的情况
- 需要安装Docker工具
- 使用开发工具: Visual Studio Code
- 调试配置文件: .vscode/launch.json
- 修改配置文件: install/docker/Dockerfile
- 取消调试注释部分: debug with xdebug
- 在 Visual Studio Code 里开启调试模式
# Docker Hub下载运行
从Docker Hub拉取betterlife镜像并运行
- Docker Hub上查询镜像: https://hub.docker.com -> 搜索: skygreen2021/betterlife
- 执行以下命令即可
- 以下说明
docker run -dp 80:80 --name betterlife -t skygreen2021/betterlife docker exec -it betterlife bash -c 'mysql betterlife < /var/www/install/db/mysql/db_betterlife.sql'
- 停止应用 : docker stop betterlife
- 删除所有的容器: docker rm betterlife
- 删除生成的镜像: docker rmi skygreen2021/betterlife
# 其它
- 学习使用Docker实战betterlife
- 这一部分主要用于学习使用Docker实战betterlife,有空的时间可以看看,这一部分主要包括:
- Docker 多阶段构建betterlife
- 上传到Docker Hub分享给大家使用betterlife框架
- 使用Laradock
- 这一部分主要用于学习使用Docker实战betterlife,有空的时间可以看看,这一部分主要包括: