Skip to content

Commit 8b1a297

Browse files
committed
feat: 使用卷代替目录挂载
1 parent 109041f commit 8b1a297

66 files changed

Lines changed: 211 additions & 634 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.bash_aliases.example

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# docker-php-env docker-compose.yml 绝对路径
1+
# docker-compose.yml 绝对路径
22
DPE_COMPOSE=/home/suyar/repo/docker-php-env/docker-compose.yml
3-
# docker-php-env 挂载的 DIR_SOURCE 绝对路径
3+
# 挂载的 DIR_SOURCE 绝对路径
44
DPE_SOURCE=/home/suyar/repo
55

66
dpe_workdir() {
@@ -20,14 +20,6 @@ dpe_workdir() {
2020
echo $workdir
2121
}
2222

23-
todpe() {
24-
cd $(dirname $(readlink -f "${DPE_COMPOSE}"))
25-
}
26-
27-
tosource() {
28-
cd $DPE_SOURCE
29-
}
30-
3123
tophp() {
3224
if [[ $# -lt 1 ]]; then
3325
local version=php83
@@ -45,11 +37,6 @@ tophp() {
4537
}
4638

4739
alias tophp83='tophp php83'
48-
alias tophp82='tophp php82'
49-
alias tophp81='tophp php81'
50-
alias tophp80='tophp php80'
51-
alias tophp74='tophp php74'
52-
alias tophp73='tophp php73'
5340

5441
tonginx() {
5542
local workdir=$(dpe_workdir)
@@ -62,18 +49,9 @@ tonginx() {
6249
}
6350

6451
tomysql() {
65-
if [[ $# -lt 1 ]]; then
66-
local version=mysql8
67-
else
68-
local version=$1
69-
fi
70-
71-
sudo docker compose -f "${DPE_COMPOSE}" exec "${version}" bash
52+
sudo docker compose -f "${DPE_COMPOSE}" exec mysql bash
7253
}
7354

74-
alias tomysql5='tomysql mysql5'
75-
alias tomysql8='tomysql mysql8'
76-
7755
php() {
7856
local workdir=$(dpe_workdir)
7957
local version
@@ -96,11 +74,6 @@ php() {
9674
}
9775

9876
alias php83='php php83'
99-
alias php82='php php82'
100-
alias php81='php php81'
101-
alias php80='php php80'
102-
alias php74='php php74'
103-
alias php73='php php73'
10477

10578
composer() {
10679
local workdir=$(dpe_workdir)
@@ -124,8 +97,3 @@ composer() {
12497
}
12598

12699
alias composer83='composer php83'
127-
alias composer82='composer php82'
128-
alias composer81='composer php81'
129-
alias composer80='composer php80'
130-
alias composer74='composer php74'
131-
alias composer73='composer php73'

.env.example

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,25 @@
1-
# docker-compose environment file
2-
COMPOSE_PROJECT_NAME=docker-php-env
3-
41
# Global
52
TZ=Asia/Shanghai
6-
DIR_DATA=./data
73
DIR_LOGS=./logs
84
DIR_SERVICES=./services
95
DIR_SOURCE=./www
106

117
# Mysql
8+
MYSQL_VERSION=8.0.37-debian
129
MYSQL_ROOT_PASSWORD=123456
13-
MYSQL_ROOT_HOST=%
14-
MYSQL8_VERSION=8.3
15-
MYSQL8_HOST_PORT=3306
16-
MYSQL5_VERSION=5.7
17-
MYSQL5_HOST_PORT=3307
18-
19-
# phpMyAdmin
20-
PHPMYADMIN_VERSION=5
21-
PHPMYADMIN_HOST_PORT=8081
22-
PHPMYADMIN_PMA_HOSTS=mysql5,mysql8
10+
MYSQL_HOST_PORT=3306
2311

2412
# Redis
25-
REDIS_VERSION=7.2
13+
REDIS_VERSION=7.0.15
2614
REDIS_HOST_PORT=6379
2715

28-
# phpRedisAdmin
29-
PHPREDISADMIN_HOST_PORT=8082
30-
3116
# Memcached
3217
MEMCACHED_VERSION=1
3318
MEMCACHED_HOST_PORT=11211
3419
MEMCACHED_MEMORY=128
3520

3621
# Nginx
37-
NGINX_VERSION=stable
22+
NGINX_VERSION=1.26
3823
NGINX_HTTP_HOST_PORT=80
3924
NGINX_HTTPS_HOST_PORT=443
4025

@@ -46,16 +31,13 @@ RABBITMQ_HOST_PORT=5672
4631
RABBITMQ_MANAGE_HOST_PORT=15672
4732

4833
#Mongo
49-
MONGODB_VERSION=5
34+
MONGODB_VERSION=7.0
5035
MONGODB_INITDB_ROOT_USERNAME=admin
5136
MONGODB_INITDB_ROOT_PASSWORD=123456
5237
MONGODB_HOST_PORT=27017
5338

54-
# MongoExpress
55-
MONGOEXPRESS_HOST_PORT=8083
56-
5739
# Elasticsearch
58-
ELASTICSEARCH_VERSION=7.17.4
40+
ELASTICSEARCH_VERSION=7.17.25
5941
ELASTICSEARCH_HOST_PORT=9200
6042

6143
# Kibana

README.md

Lines changed: 35 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,15 @@
2323

2424
目前支持开箱即用的服务有:
2525

26-
1. Mysql5.7(使用官方镜像)
27-
2. Mysql8.3(使用官方镜像)
28-
3. phpMyAdmin(使用官方镜像)
29-
4. Redis7.2(使用官方镜像)
30-
5. phpRedisAdmin(使用官方镜像)
31-
6. Memcached(使用官方镜像)
32-
7. PHP8.3/PHP8.2/PHP8.1/PHP8.0/PHP7.4/PHP7.3(使用基于官方的集成镜像 [suyar/php:x.x-integration](https://github.com/suyar/docker-php#%E9%9B%86%E6%88%90%E9%95%9C%E5%83%8F)
33-
8. Nginx(使用官方镜像)
34-
9. RabbitMQ(使用官方镜像)
35-
10. MongoDB(使用官方镜像)
36-
11. Mongo-Express(使用官方镜像)
37-
12. Elasticsearch(使用官方镜像)
38-
13. Kibana(使用官方镜像)
26+
1. mysql:8.0.37-debian(官方镜像)
27+
2. redis:7.0.15(官方镜像)
28+
3. memcached:1(官方镜像)
29+
4. PHP8.3/PHP8.2/PHP8.1/PHP8.0/PHP7.4/PHP7.3(基于官方的集成镜像 [suyar/php:x.x-integration](https://github.com/suyar/docker-php#%E9%9B%86%E6%88%90%E9%95%9C%E5%83%8F)
30+
5. nginx:1.26(官方镜像)
31+
6. rabbitmq:3-management(官方镜像)
32+
7. mongo:7.0(官方镜像)
33+
8. elasticsearch:7.17.25(官方镜像)
34+
9. kibana:7.17.25(官方镜像)
3935

4036
# 目录
4137

@@ -58,62 +54,27 @@
5854

5955
```
6056
/
61-
├── data
62-
│   ├── composer Composer 缓存
63-
│   ├── elasticsearch Elasticsearch 持久化数据
64-
│   ├── mongodb MongoDB 持久化数据
65-
│   ├── mysql5 Mysql5.7 持久化数据
66-
│   ├── mysql8 Mysql8.2 持久化数据
67-
│   ├── rabbitmq Rabbitmq 持久化数据
68-
│   └── redis Redis 持久化数据
69-
├── logs
70-
│   ├── mongodb MongoDB 日志
71-
│   ├── mysql
72-
│   │   ├── 5 Mysql5.7 日志
73-
│   │   └── 8 Mysql8.2 日志
74-
│   ├── nginx Nginx 日志
75-
│   ├── php
76-
│   │   ├── 73
77-
│   │   │   ├── log PHP7.3 错误日志与慢日志
78-
│   │   │   └── supervisor PHP7.3 里 supervisor 日志
79-
│   │   ├── 74
80-
│   │   │   ├── log PHP7.4 错误日志与慢日志
81-
│   │   │   └── supervisor PHP7.4 里 supervisor 日志
82-
│   │   ├── 80
83-
│   │   │   ├── log PHP8.0 错误日志与慢日志
84-
│   │   │   └── supervisor PHP8.0 里 supervisor 日志
85-
│   │   ├── 81
86-
│   │   │   ├── log PHP8.1 错误日志与慢日志
87-
│   │   │   └── supervisor PHP8.1 里 supervisor 日志
88-
│   │   ├── 82
89-
│   │   │   ├── log PHP8.2 错误日志与慢日志
90-
│   │   │   └── supervisor PHP8.2 里 supervisor 日志
91-
│   │   └── 83
92-
│   │   ├── log PHP8.3 错误日志与慢日志
93-
│   │   └── supervisor PHP8.3 里 supervisor 日志
94-
│   └── rabbitmq Rabbitmq 日志
57+
├── logs 日志存放目录
9558
├── services
9659
│   ├── elasticsearch Elasticsearch 配置目录
9760
│   ├── mongodb MongoDB 配置目录
98-
│   ├── mysql Mysql5.7/Mysql8.2 配置目录
61+
│   ├── mysql Mysql 配置目录
9962
│   ├── nginx Nginx 配置目录
10063
│   │   ├── conf.d Nginx Vhost 配置目录
10164
│   │   └── ssl Nginx 证书目录
102-
│   ├── php
103-
│   │   ├── 73 PHP7.3 配置目录
104-
│   │   ├── 74 PHP7.4 配置目录
105-
│   │   ├── 80 PHP8.0 配置目录
106-
│   │   ├── 81 PHP8.1 配置目录
107-
│   │   ├── 82 PHP8.2 配置目录
108-
│   │   └── 83 PHP8.3 配置目录
109-
│   ├── phpmyadmin phpMyAdmin 配置目录
65+
│   ├── php73 PHP7.3 配置目录
66+
│   ├── php74 PHP7.4 配置目录
67+
│   ├── php80 PHP8.0 配置目录
68+
│   ├── php81 PHP8.1 配置目录
69+
│   ├── php82 PHP8.2 配置目录
70+
│   ├── php83 PHP8.3 配置目录
11071
│   ├── rabbitmq Rabbitmq 配置目录
11172
│   └── redis Redis 配置目录
11273
├── .bash_aliases.example .bash_aliases 示例配置
11374
├── .env.example .env 变量示例配置
11475
├── docker-compose.yml.example docker-compose 示例
11576
├── dpe.sh 初始化脚本
116-
└── www 默认项目代码存放目录
77+
└── www 默认项目代码挂载目录
11778
```
11879

11980
## 2. 快速使用
@@ -165,7 +126,7 @@
165126
# sudo docker-compose up -d
166127
```
167128
168-
5. 在浏览器中访问:`http://localhost` 或 `http://127.0.0.1`,初始页面会显示 `404`。
129+
5. 在浏览器中访问:`http://localhost` 或 `http://127.0.0.1`,初始页面显示 `404`。
169130
170131
## 3. PHP 扩展
171132
@@ -281,69 +242,42 @@ root@php83:/www# composer install
281242
2. 修改 `~/.bash_aliases` 的变量 `DPE_COMPOSE` 和 `DPE_SOURCE`
282243
283244
```
284-
# docker-php-env docker-compose.yml 绝对路径
245+
# docker-compose.yml 绝对路径
285246
DPE_COMPOSE=/home/suyar/repo/docker-php-env/docker-compose.yml
286-
# docker-php-env 挂载的 DIR_SOURCE 绝对路径
247+
# 挂载的 DIR_SOURCE 绝对路径
287248
DPE_SOURCE=/home/suyar/repo
288249
250+
# 依葫芦画瓢配置其他版本PHP的快捷命令
251+
289252
...
290253
```
291254
292255
3. 开始使用快捷命令
293256
294257
```
295-
# 进入宿主机 docker-php-env 目录
296-
$ todpe
297-
# 进入宿主机 DIR_SOURCE 目录
298-
$ tosource
299-
300258
# 进入 php83 容器,自动识别挂载目录中的相对路径
301259
$ tophp
302260
# 进入 php83 容器,自动识别挂载目录中的相对路径
303261
$ tophp83
304-
# 进入 php82 容器,自动识别挂载目录中的相对路径
305-
$ tophp82
306-
# 进入 php81 容器,自动识别挂载目录中的相对路径
307-
$ tophp81
308-
# 进入 php80 容器,自动识别挂载目录中的相对路径
309-
$ tophp80
310-
# 进入 php74 容器,自动识别挂载目录中的相对路径
311-
$ tophp74
312-
# 进入 php73 容器,自动识别挂载目录中的相对路径
313-
$ tophp73
314262
315263
# 进入 nginx 容器,自动识别挂载目录中的相对路径
316264
$ tonginx
317265
318-
# 进入 mysql8 容器
266+
# 进入 mysql 容器
319267
$ tomysql
320-
# 进入 mysql8 容器
321-
$ tomysql8
322-
# 进入 mysql5 容器
323-
$ tomysql5
324268
325-
# 在宿主机执行 php 命令,自动识别挂载目录中的相对路径
269+
# 在宿主机执行 php 命令,自动识别挂载目录中的相对路径;如果宿主机有安装php,请在`~/.bash_aliases`中修改`php()`别名
326270
$ php
327271
$ php83
328-
$ php82
329-
$ php81
330-
$ php80
331-
$ php74
332-
$ php73
333272
334-
# 在宿主机执行 composer 命令,自动识别挂载目录中的相对路径
273+
# 在宿主机执行 composer 命令,自动识别挂载目录中的相对路径;如果宿主机有安装composer,请在`~/.bash_aliases`中修改`composer()`别名
335274
$ composer
336275
$ composer83
337-
$ composer82
338-
$ composer81
339-
$ composer80
340-
$ composer74
341-
$ composer73
342276
```
343277
344278
> 关于 `自动识别挂载目录中的相对路径` 的效果如下:
345279
346-
假设我的 `.env` 配置如下:
280+
假设 `.env` 配置如下:
347281
348282
```
349283
...
@@ -352,14 +286,14 @@ root@php83:/www# composer install
352286
...
353287
```
354288
355-
假设我的 `~/.bash_aliases` 变量配置如下:
289+
假设 `~/.bash_aliases` 变量配置如下:
356290
357291
```
358292
# docker-php-env 挂载的 DIR_SOURCE 绝对路径
359293
DPE_SOURCE=/home/repo
360294
```
361295
362-
假设我宿主机中,当前目录为 **`/home/repo/laravel`**
296+
假设宿主机中,当前目录为 **`/home/repo/laravel`**
363297
364298
那么我在宿主机执行 `tophp` 命令后:
365299
@@ -390,9 +324,9 @@ root@php83:/www# composer install
390324
environment:
391325
TZ: ${TZ}
392326
volumes:
393-
- ${DIR_SERVICES}/nginx/nginx.conf:/etc/nginx/nginx.conf
394-
- ${DIR_SERVICES}/nginx/conf.d:/etc/nginx/conf.d
395-
- ${DIR_SERVICES}/nginx/ssl:/etc/nginx/ssl
327+
- ${DIR_SERVICES}/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
328+
- ${DIR_SERVICES}/nginx/conf.d:/etc/nginx/conf.d:ro
329+
- ${DIR_SERVICES}/nginx/ssl:/etc/nginx/ssl:ro
396330
- ${DIR_LOGS}/nginx:/var/log/nginx
397331
- ${DIR_SOURCE}:/www
398332
working_dir: /www
@@ -402,7 +336,7 @@ root@php83:/www# composer install
402336
networks:
403337
default:
404338
aliases:
405-
- example.laravel.me
339+
- example.laravel.local
406340
- test.biz.me
407341
restart: unless-stopped
408342
logging:
@@ -433,19 +367,18 @@ root@php83:/www# composer install
433367
434368
这里以 `php83` 容器举例:
435369
436-
1. 修改 `services/php/83/supervisor.conf` 的内容
370+
1. 修改 `services/php83/supervisor.conf` 的内容
437371
2. 重启 `php83` 容器
438372
439373
### 4.4 清空服务数据
440374
441375
在某些情况下,你可能需要清空各种生成的数据,重新初始化开发环境,
442376
443-
> 该操作是风险操作,会清空所有持久化数据!!!
377+
> 该操作是风险操作,会清空所有容器和持久化数据卷!!!
444378
445379
```
446380
# sudo docker-compose down
447381
# sudo ./dpe.sh clean
448-
# sudo ./dpe.sh init
449382
```
450383
451384
## License

data/elasticsearch/.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

data/mongodb/.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)