Skip to content

Commit 6be152b

Browse files
committed
💄1、增加PHP7.4
💄2、增加RabbitMQ
1 parent 6be6c9e commit 6be152b

File tree

4 files changed

+170
-14
lines changed

4 files changed

+170
-14
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
- [本地生成 HTTPS](#本地生成HTTPS)
3232
- [Docker 生成 HTTPS](#Docker生成HTTPS)
3333
- [Openresty 专题](#Openresty专题)
34+
- [RabbitMQ 专题](#RabbitMQ专题)
3435
- [XDebug 管理](#XDebug管理)
3536
- [遇到的问题](#遇到的问题)
3637

@@ -606,6 +607,10 @@ $ docker run --rm -it -v "D:\Git\docker-lnmp\dev\nginx\v5\etc\letsencrypt":/acm
606607
- 复制主机的 localtime `docker cp etc/localtime dnmp-openresty:/etc/`
607608
- 重启容器 `docker-compose restart openresty`
608609

610+
### RabbitMQ专题
611+
612+
管理界面地址:[http://127.0.0.1:15672/](http://127.0.0.1:15672/)
613+
609614
#### 扩展[apisix 微服务 API 网关](https://github.com/iresty/apisix)
610615

611616

dnmp/docker-compose.yml

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ services:
55
image: ${OPENRESTY_IMAGE_BASE}:${OPENRESTY_IMAGE_TAG}
66
ports:
77
- "${NGINX_HTTP_PORT}:80"
8-
- "${NGINX_HTTPS_PORT}:443"
8+
- "8001:8001"
9+
- "8002:8002"
10+
- "8003:8003"
11+
- "8004:8004"
912
volumes:
1013
- ${NGINX_CONF_FILE}:/usr/local/openresty/nginx/conf/nginx.conf
1114
- ${NGINX_CONFD_DIR}:/etc/nginx/conf.d
@@ -15,7 +18,7 @@ services:
1518
- ${NGINX_SSL_DIR}:/etc/letsencrypt
1619
restart: always
1720
environment:
18-
TZ: Asia/Shanghai
21+
TZ: "${TZ}"
1922
container_name: ${OPENRESTY_CONTAINER_NAME}
2023
networks:
2124
- backend
@@ -33,7 +36,7 @@ services:
3336
# - ${NGINX_SSL_DIR}:/etc/letsencrypt
3437
# restart: always
3538
# environment:
36-
# TZ: Asia/Shanghai
39+
# TZ: "${TZ}"
3740
# container_name: ${NGINX_CONTAINER_NAME}
3841
# networks:
3942
# - backend
@@ -49,6 +52,25 @@ services:
4952
# networks:
5053
# - backend
5154
# container_name: dnmp-php7
55+
php74:
56+
build:
57+
context: .
58+
args:
59+
PHP_VERSION: ${PHP74_VERSION}
60+
ALPINE_REPOSITORIES: ${ALPINE_REPOSITORIES}
61+
PHP_EXTENSIONS: ${PHP74_EXTENSIONS}
62+
MORE_EXTENSION_INSTALLER: php74.sh
63+
ports:
64+
- "${PHP74_FPM_PORT}:9000"
65+
- "9509:9509"
66+
volumes:
67+
- ${SOURCE_SHARE_DIR}:/var/www
68+
- ${PHP_INI_FILE}:/usr/local/etc/php/php.ini
69+
- ${PHP_WWW_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf
70+
- ${NGINX_LOG_DIR}:/var/log/php
71+
networks:
72+
- backend
73+
container_name: ${PHP74_CONTAINER_NAME}
5274
php72:
5375
build:
5476
context: .
@@ -60,6 +82,7 @@ services:
6082
ports:
6183
- "${PHP72_FPM_PORT}:9000"
6284
- "${PHP72_WORKERMAN_PORT}:9502"
85+
- "9503:9503"
6386
volumes:
6487
- ${SOURCE_SHARE_DIR}:/var/www
6588
- ${PHP_INI_FILE}:/usr/local/etc/php/php.ini
@@ -124,7 +147,21 @@ services:
124147
environment:
125148
- PMA_HOST=dnmp-mysql
126149
- PMA_PORT=3306
127-
container_name: dnmp-phpmyadmin
150+
container_name: dnmp-phpmyadmin
151+
152+
rabbitmq:
153+
image: rabbitmq:${RABBITMQ_VERSION}
154+
restart: always
155+
ports:
156+
- "${RABBITMQ_HOST_PORT_CLIENT}:5672"
157+
- "${RABBITMQ_HOST_PORT_MANAGEMENT}:15672"
158+
environment:
159+
TZ: "$TZ"
160+
RABBITMQ_DEFAULT_USER: "${RABBITMQ_DEFAULT_USER}"
161+
RABBITMQ_DEFAULT_PASS: "${RABBITMQ_DEFAULT_PASS}"
162+
container_name: ${RABBITMQ_CONTAINER_NAME}
163+
networks:
164+
- backend
128165
networks:
129166
backend:
130167
driver: bridge

dnmp/env.sample

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1-
#[[ common config ]]
1+
#+--------------+
2+
# Base
3+
#+--------------+
24
SOURCE_SHARE_DIR=./www
5+
DATA_DIR=./data
6+
7+
#+--------------+
8+
#+ Container package : mirrors.163.com、mirrors.aliyun.com、mirrors.ustc.edu.cn
9+
#+--------------+
310
ALPINE_REPOSITORIES=mirrors.aliyun.com
411

512
PHP_IMAGE_BASE=registry.cn-beijing.aliyuncs.com/tinywan/dnmp
@@ -8,7 +15,14 @@ PHP_FPM_CONF_FILE=./conf/php/php-fpm.conf
815
PHP_WWW_CONF_FILE=./conf/php/php-fpm.d/www.conf
916
PHP_LOG_DIR=./log/php
1017

11-
#[[ nginx config ]]
18+
#+--------------+
19+
# Timezone
20+
#+--------------+
21+
TZ=Asia/Shanghai
22+
23+
#+--------------+
24+
# Nginx
25+
#+--------------+
1226
NGINX_IMAGE_BASE=nginx
1327
NGINX_IMAGE_TAG=1.14.2-alpine
1428
NGINX_HTTP_PORT=80
@@ -20,45 +34,81 @@ NGINX_LOG_DIR=./log/nginx
2034
NGINX_SSL_DIR=./conf/letsencrypt
2135
NGINX_CONTAINER_NAME=dnmp-nginx
2236

23-
#[[ openresty config ]]
37+
#+--------------+
38+
# Openresty
39+
#+--------------+
2440
OPENRESTY_IMAGE_BASE=openresty/openresty
2541
OPENRESTY_IMAGE_TAG=1.15.8.2-bionic
2642
OPENRESTY_HTTP_PORT=80
2743
OPENRESTY_CONTAINER_NAME=dnmp-openresty
2844
OPENRESTY_LUA_DIR=./conf/lua
2945

30-
#[[ php5.6 ]]
46+
#+--------------+
47+
# PHP5.6
48+
#+--------------+
3149
PHP56_VERSION=5.6.40
3250
PHP56_IMAGE_TAG=php5.6-v2
3351
PHP56_FPM_PORT=9006
34-
#PHP56_EXTENSIONS=gd,bcmath,pdo,mysql,mysqli,pdo_mysql,bz2,calendar,mcrypt,opcache,redis,pcntl,sockets,xdebug
3552
PHP56_EXTENSIONS=gd,bcmath,pdo,mysql,mysqli,pdo_mysql,bz2,calendar,mcrypt,opcache,redis,pcntl,sockets,xdebug
3653
PHP56_CONTAINER_NAME=dnmp-php56
3754

38-
#[[ php7.2 ]]
55+
#+--------------+
56+
# PHP7.2
57+
#+--------------+
3958
PHP72_VERSION=7.2.19
4059
PHP72_IMAGE_TAG=php7.2-v5
4160
PHP72_FPM_PORT=9007
4261
PHP72_WORKERMAN_PORT=9502
4362
PHP72_EXTENSIONS=pdo,mysqli,pdo_mysql,redis,sockets,xdebug,swoole
4463
PHP72_CONTAINER_NAME=dnmp-php72
4564

46-
#[[ mysql ]]
65+
#+--------------+
66+
# PHP7.4
67+
#+--------------+
68+
PHP74_VERSION=7.4.0
69+
PHP74_IMAGE_TAG=php7.4-v1
70+
PHP74_FPM_PORT=9097
71+
PHP74_EXTENSIONS=pdo,mysqli,pdo_mysql,redis,sockets,xdebug
72+
PHP74_CONTAINER_NAME=dnmp-php7.4
73+
74+
#+--------------+
75+
# MySQL
76+
#+--------------+
4777
MYSQL_IMAGE_TAG=5.7
4878
MYSQL_HOST_PORT=3306
4979
MYSQL_ROOT_PASSWORD=123456
5080
MYSQL_DATA_DIR=./data/mysql
5181
MYSQL_CONF_FILE=./conf/mysql/my.cnf
5282
MYSQL_CONTAINER_NAME=dnmp-mysql
5383

54-
#[[ redis config ]]
84+
#+--------------+
85+
# Redis
86+
#+--------------+
5587
REDIS_VERSION=5.0.3-alpine
5688
REDIS_IMAGE_TAG=5.0.3-alpine
5789
REDIS_HOST_PORT=6379
5890
REDIS_CONF_FILE=./conf/redis/redis.conf
5991
REDIS_DATA_DIR=./data/redis
6092
REDIS_CONTAINER_NAME=dnmp-redis
6193

62-
#[[ phpmyadmin config ]]
94+
#+--------------+
95+
# PHPMyAdmin
96+
#+--------------+
6397
PHPMYADMIN_TAG=latest
64-
PHPMYADMIN_HOST_PORT=8082
98+
PHPMYADMIN_HOST_PORT=8082
99+
100+
#+--------------+
101+
# RabbitMQ
102+
#+--------------+
103+
RABBITMQ_VERSION=management
104+
105+
# 客户端接口
106+
RABBITMQ_HOST_PORT_CLIENT=5672
107+
108+
# Web 管理界面 http://127.0.0.1:15672/
109+
RABBITMQ_HOST_PORT_MANAGEMENT=15672
110+
111+
# 默认账号和密码
112+
RABBITMQ_DEFAULT_USER=resty
113+
RABBITMQ_DEFAULT_PASS=resty
114+
RABBITMQ_CONTAINER_NAME=dnmp-rabbitmq

dnmp/extensions/php74.sh

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#!/bin/sh
2+
3+
echo
4+
echo "============================================"
5+
echo "Install extensions from : ${MORE_EXTENSION_INSTALLER}"
6+
echo "PHP version : ${PHP_VERSION}"
7+
echo "Extra Extensions : ${PHP_EXTENSIONS}"
8+
echo "Multicore Compilation : ${MC}"
9+
echo "Work directory : ${PWD}"
10+
echo "============================================"
11+
echo
12+
13+
14+
if [ -z "${EXTENSIONS##*,mcrypt,*}" ]; then
15+
echo "---------- mcrypt was REMOVED from PHP 7.2.0 ----------"
16+
fi
17+
18+
19+
if [ -z "${EXTENSIONS##*,sodium,*}" ]; then
20+
echo "---------- Install sodium ----------"
21+
echo "Sodium is bundled with PHP from PHP 7.2.0 "
22+
fi
23+
24+
25+
if [ -z "${EXTENSIONS##*,redis,*}" ]; then
26+
echo "---------- Install redis ----------"
27+
mkdir redis \
28+
&& tar -xf redis-4.3.0.tgz -C redis --strip-components=1 \
29+
&& ( cd redis && phpize && ./configure && make ${MC} && make install ) \
30+
&& docker-php-ext-enable redis
31+
fi
32+
33+
34+
if [ -z "${EXTENSIONS##*,memcached,*}" ]; then
35+
echo "---------- Install memcached ----------"
36+
apk add --no-cache libmemcached-dev zlib-dev
37+
printf "\n" | pecl install memcached-3.1.3
38+
docker-php-ext-enable memcached
39+
fi
40+
41+
42+
if [ -z "${EXTENSIONS##*,swoole,*}" ]; then
43+
echo "---------- Install swoole ----------"
44+
mkdir swoole \
45+
&& tar -xf swoole-4.3.5.tgz -C swoole --strip-components=1 \
46+
&& ( cd swoole && phpize && ./configure --enable-openssl && make ${MC} && make install ) \
47+
&& docker-php-ext-enable swoole
48+
fi
49+
50+
51+
if [ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]; then
52+
echo "---------- Install pdo_sqlsrv ----------"
53+
apk add --no-cache unixodbc-dev
54+
pecl install pdo_sqlsrv
55+
docker-php-ext-enable pdo_sqlsrv
56+
fi
57+
58+
59+
if [ -z "${EXTENSIONS##*,sqlsrv,*}" ]; then
60+
echo "---------- Install sqlsrv ----------"
61+
apk add --no-cache unixodbc-dev
62+
printf "\n" | pecl install sqlsrv
63+
docker-php-ext-enable sqlsrv
64+
fi

0 commit comments

Comments
 (0)