Skip to content

Commit

Permalink
修改readme
Browse files Browse the repository at this point in the history
  • Loading branch information
johnYi-55 committed Jan 13, 2023
1 parent ab19fb9 commit e175fd4
Showing 1 changed file with 108 additions and 109 deletions.
217 changes: 108 additions & 109 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,140 +1,139 @@
1. docker-lnmp 项目帮助开发者快速构建本地开发环境,包括Nginx、PHP、MySQL、Redis、MongoDB、ElasticSearch、Kibana服务镜像,支持服务版本切换,并支持配置文件和日志文件映射,不限操作系统;
2. 此项目适合个人开发者本机部署,可以快速切换服务版本满足学习服务新版本的需求; 也适合团队中统一开发环境,设定好配置后一键部署, 便于提高团队开发效率;
2. PHP 支持多版本 包括php5.6、 php7.1、php7.2、php7.3、php7.4、php8.0、php8.1 版本;
3. MySQL 支持 5.7 、8.0 版本;
4. Redis 支持 4.0 、5.0 、6.0 版本;
5. ElasticSearch 和 Kibana 是 7.17.0 版本;
6PHP 扩展包括了gd、grpc、redis、protobuf、memcached、swoole等;

### 一. [install docker](https://github.com/ogenes/docker-lnmp/wiki/Docker-%E7%AE%80%E4%BB%8B%E5%8F%8A%E5%AE%89%E8%A3%85)

1. docker-lnmp 项目帮助开发者快速构建本地开发环境,包括Nginx、PHP、MySQL、Redis服务镜像,支持服务版本切换,并支持配置文件和日志文件映射,不限操作系统;

2. 此项目适合个人开发者本机部署,满足学习和工作需求; 也适合团队中统一开发环境,设定好配置后一键部署, 便于提高团队开发效率;

3. PHP 同时支持 php5.6、php7.1、php7.2、php7.4、php8.0、php8.1 版本;

4. MySQL 支持 5.7 、8.0 版本切换,可通过env参数配置选择;

5. Redis 支持 4.0 、5.0 、6.0 版本切换,可通过env参数配置选择;

6. PHP 扩展另补充了gd、grpc、redis、protobuf、memcached、swoole等,可通过compse.yml中args控制;

![image-20220805140235358](https://img.ogenes.cn/img/2022/image-20220805140235358.png)

### 一. [安装 docker](https://www.runoob.com/docker/macos-docker-install.html)

```shell
```
$ docker -v
Docker version 20.10.16, build aa7e414
Docker version 19.03.8, build afacb8b
$ docker-compose -v
Docker Compose version v2.6.0
```
docker-compose version 1.25.5, build 8a1c60f6
### 二. 下载项目
```

```shell
### 二. download
```$xslt
$ pwd
/Users/55haitao/data/tt
$ git clone git@gitlab.rdc.55haitao.com:john.yi/docker-lnmp.git
/d/app
$ git clone https://github.com/ogenes/docker-lnmp.git
```

### 三. 启动

Note: 首次执行耗时较久,耐心等待;如果有些镜像下载失败,请参考docker镜像加速或者科学上网。

### 三. init
```shell script
$ cd docker-lnmp
$ docker-lnmp git:(production) cp .env.example .env
$ docker-lnmp git:(production) ssh-keygen -C 'ogenes-docker' #注意修改路径为当前目录 ./id_rsa
$ docker-lnmp git:(production) docker-compose up -d
#如果不需要启动所有服务,可以加上service参数选择服务分开启动: docker-compose up -d nginx php71
```
```sql
docker exec -it mysql bash
mysql -uroot -p 123456
use mysql;
select host from user where user='root';
update user set host = '%' where user ='root';
flush privileges;
$ cp .env.example .env
```

### 四. 项目配置(以finance-api项目为例)

1. nginx根目录为跟 docker-lnmp 同级的 www 目录。(根目录可以通过修改 .env 文件的 WEB_ROOT_PATH 配置项更改,使用相对路径)

```shell
$ pwd
/Users/55haitao/data/tt
$ ll
total 0
drwxr-xr-x 21 55haitao staff 672B Aug 5 10:14 docker-lnmp
drwxr-xr-x 3 55haitao staff 96B Aug 5 10:12 www
```

2. 从gitlab仓库下载项目

```shell
cd www
#我在www下面新建了一个目录 haitao 用来放公司内部项目,也可以直接都放到 www 下面
➜ mkdir haitao
cd haitao
➜ git clone git@gitlab.rdc.55haitao.com:midplatform/finance-center/finance-api.git
```

3. 下载完成后,执行composer自动加载vendor

>finance-api 是运行在php81里面的, 需要进入到php81容器内运行composer.
```shell
➜ docker exec -it php81 bash
root@406575c28de7:/var/www# cd haitao/finance-api/
root@406575c28de7:/var/www/haitao/finance-api# cp .env.example .env
root@406575c28de7:/var/www/haitao/finance-api# composer install
root@406575c28de7:/var/www/haitao/finance-api# php artisan -V
Laravel Framework 9.22.1
```

>当然也可以直接运行命令
### 四. run
```shell script
#首次执行耗时较久,耐心等待
$ docker-compose up -d nginx php74 mysql redis
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba864491ac22 docker-lnmp_mysql "docker-entrypoint.s…" 22 minutes ago Up 6 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
68ca3dcdf667 docker-lnmp_nginx "nginx -g 'daemon of…" 42 minutes ago Up 3 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx
9e46003ebe39 docker-lnmp_php "docker-php-entrypoi…" 42 minutes ago Up 4 seconds 0.0.0.0:9000->9000/tcp php
e1c96bbea465 docker-lnmp_redis "docker-entrypoint.s…" 51 minutes ago Up 5 seconds 0.0.0.0:6379->6379/tcp redis
```

```shell
➜ docker exec -it php81 bash -c "cd haitao/finance-api; cp .env.example .env; composer install"
➜ docker exec -it php81 bash -c 'cd haitao/finance-api; php artisan -V'
Laravel Framework 9.22.1
```
### 五. test
```
$ cp nginx/conf.d/default.conf.example nginx/conf.d/default.conf
$ docker-compose restart nginx
4. composer成功之后,配置 nginx
#绑定本机hosts
127.0.0.1 default.dev.com
> 部分项目的nginx本地配置模板已经放入了 nginx/conf.d/55haitao/ 目录内;
>
> finance-api 的配置是已有模板的,其他项目没有的话可以参考它自行配置。
>
> 需要注意的是, 如果你的项目目录跟我的不一致, 需要修改对应项目的 root 路径。
```
访问 http://default.dev.com/ 得到响应 Hello Ogenes! 表示运行成功。

> 参考 55haitao.conf.bak 新建配置文件 nginx/conf.d/55haitao.conf, 在里面引入配置模板即可:
![QQ截图20210114105752.png](https://i.loli.net/2021/01/14/NPTJhEgcszFZaOp.png)

```
include /etc/nginx/conf.d/55haitao/finance-api.local.55haitao.com.conf;
```
### 六. note
默认版本为:
MySQL 5.7
Redis 5.0
可以通过修改 env 文件的 MYSQL_VERSION 、REDIS_VERSION 来选择其他版本
MySQL 和 Redis 切换版本时,注意切换配置文件

项目目录默认为 docker-lnmp/www 目录
可以通过修改 env 文件的 WEB_ROOT_PATH 来指定其他目录

nginx 虚拟主机配置文件在 docker-lnmp/nginx/conf.d 目录内, 可以参考 default 项目配置。

5. 配置本地hosts
### 七. restart | down | rebuild

>需要将上述server_name解析到本机,可通过编辑 /etc/hosts 文件生效。
```shell script

```shell
➜ sudo vim /etc/hosts
#加入行
127.0.0.1 finance-api.local.55haitao.com
```
#修改配置文件后重启即可
$ docker-compose restart nginx php
Restarting nginx ... done
Restarting php ... done

对于经常更改 /etc/hosts 文件的同学, 这里推荐一个hosts 管理工具 [SwitchHost](https://github.com/oldj/SwitchHosts/releases)
# 修改 dockerfile 或者 env 文件之后 rebuild 可生效
$ docker-compose up -d --build php nginx mysql

6. 重启 nginx 服务
# 停止
$ docker-compose stop

```shell
➜ docker-compose restart nginx
Restarting nginx ... done
```
# 停止并删除容器
$ docker-compose down

7. 访问 finance-api.local.55haitao.com 验证
# 停止并删除容器+镜像
$ docker-compose down --rmi all

![image-20220805135545127](https://img.ogenes.cn/img/2022/image-20220805135545127.png)
```

其他项目同理,下载对应代码,增加nginx配置, 然后重启nginx即可。
### 目录结构

```
.
├── LICENSE
├── README.md
├── data
│   ├── elasticsearch
│   ├── mysql
│   ├── redis
├── docker-compose.yml
├── elasticsearch
│   └── Dockerfile
├── kibana7
│   └── Dockerfile
├── logs
├── mongo
│   ├── Dockerfile
│   └── mongod.conf
├── mysql
│   ├── Dockerfile
│   └── docker.cnf
├── nginx
│   ├── Dockerfile
│   ├── conf.d
│   │   ├── default.conf.example
│   └── nginx.conf
├── php
│   ├── Dockerfile
│   └── config
│   ├── php-fpm.conf
│   ├── php-fpm.d
│   │   ├── docker.conf
│   │   ├── www.conf
│   │   └── zz-docker.conf
│   └── php.ini
├── redis
│   ├── Dockerfile
│   ├── redis4.conf
│   ├── redis5.conf
│   └── redis6.conf
├── text.log
└── www
└── default
└── index.php
```

0 comments on commit e175fd4

Please sign in to comment.