Skip to content

Commit

Permalink
💄1、增加PHP7.4
Browse files Browse the repository at this point in the history
💄2、增加RabbitMQ
  • Loading branch information
Tinywan committed Dec 3, 2019
1 parent 6be6c9e commit 6be152b
Show file tree
Hide file tree
Showing 4 changed files with 170 additions and 14 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
- [本地生成 HTTPS](#本地生成HTTPS)
- [Docker 生成 HTTPS](#Docker生成HTTPS)
- [Openresty 专题](#Openresty专题)
- [RabbitMQ 专题](#RabbitMQ专题)
- [XDebug 管理](#XDebug管理)
- [遇到的问题](#遇到的问题)

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

### RabbitMQ专题

管理界面地址:[http://127.0.0.1:15672/](http://127.0.0.1:15672/)

#### 扩展[apisix 微服务 API 网关](https://github.com/iresty/apisix)


Expand Down
45 changes: 41 additions & 4 deletions dnmp/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ services:
image: ${OPENRESTY_IMAGE_BASE}:${OPENRESTY_IMAGE_TAG}
ports:
- "${NGINX_HTTP_PORT}:80"
- "${NGINX_HTTPS_PORT}:443"
- "8001:8001"
- "8002:8002"
- "8003:8003"
- "8004:8004"
volumes:
- ${NGINX_CONF_FILE}:/usr/local/openresty/nginx/conf/nginx.conf
- ${NGINX_CONFD_DIR}:/etc/nginx/conf.d
Expand All @@ -15,7 +18,7 @@ services:
- ${NGINX_SSL_DIR}:/etc/letsencrypt
restart: always
environment:
TZ: Asia/Shanghai
TZ: "${TZ}"
container_name: ${OPENRESTY_CONTAINER_NAME}
networks:
- backend
Expand All @@ -33,7 +36,7 @@ services:
# - ${NGINX_SSL_DIR}:/etc/letsencrypt
# restart: always
# environment:
# TZ: Asia/Shanghai
# TZ: "${TZ}"
# container_name: ${NGINX_CONTAINER_NAME}
# networks:
# - backend
Expand All @@ -49,6 +52,25 @@ services:
# networks:
# - backend
# container_name: dnmp-php7
php74:
build:
context: .
args:
PHP_VERSION: ${PHP74_VERSION}
ALPINE_REPOSITORIES: ${ALPINE_REPOSITORIES}
PHP_EXTENSIONS: ${PHP74_EXTENSIONS}
MORE_EXTENSION_INSTALLER: php74.sh
ports:
- "${PHP74_FPM_PORT}:9000"
- "9509:9509"
volumes:
- ${SOURCE_SHARE_DIR}:/var/www
- ${PHP_INI_FILE}:/usr/local/etc/php/php.ini
- ${PHP_WWW_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf
- ${NGINX_LOG_DIR}:/var/log/php
networks:
- backend
container_name: ${PHP74_CONTAINER_NAME}
php72:
build:
context: .
Expand All @@ -60,6 +82,7 @@ services:
ports:
- "${PHP72_FPM_PORT}:9000"
- "${PHP72_WORKERMAN_PORT}:9502"
- "9503:9503"
volumes:
- ${SOURCE_SHARE_DIR}:/var/www
- ${PHP_INI_FILE}:/usr/local/etc/php/php.ini
Expand Down Expand Up @@ -124,7 +147,21 @@ services:
environment:
- PMA_HOST=dnmp-mysql
- PMA_PORT=3306
container_name: dnmp-phpmyadmin
container_name: dnmp-phpmyadmin

rabbitmq:
image: rabbitmq:${RABBITMQ_VERSION}
restart: always
ports:
- "${RABBITMQ_HOST_PORT_CLIENT}:5672"
- "${RABBITMQ_HOST_PORT_MANAGEMENT}:15672"
environment:
TZ: "$TZ"
RABBITMQ_DEFAULT_USER: "${RABBITMQ_DEFAULT_USER}"
RABBITMQ_DEFAULT_PASS: "${RABBITMQ_DEFAULT_PASS}"
container_name: ${RABBITMQ_CONTAINER_NAME}
networks:
- backend
networks:
backend:
driver: bridge
70 changes: 60 additions & 10 deletions dnmp/env.sample
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
#[[ common config ]]
#+--------------+
# Base
#+--------------+
SOURCE_SHARE_DIR=./www
DATA_DIR=./data

#+--------------+
#+ Container package : mirrors.163.com、mirrors.aliyun.com、mirrors.ustc.edu.cn
#+--------------+
ALPINE_REPOSITORIES=mirrors.aliyun.com

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

#[[ nginx config ]]
#+--------------+
# Timezone
#+--------------+
TZ=Asia/Shanghai

#+--------------+
# Nginx
#+--------------+
NGINX_IMAGE_BASE=nginx
NGINX_IMAGE_TAG=1.14.2-alpine
NGINX_HTTP_PORT=80
Expand All @@ -20,45 +34,81 @@ NGINX_LOG_DIR=./log/nginx
NGINX_SSL_DIR=./conf/letsencrypt
NGINX_CONTAINER_NAME=dnmp-nginx

#[[ openresty config ]]
#+--------------+
# Openresty
#+--------------+
OPENRESTY_IMAGE_BASE=openresty/openresty
OPENRESTY_IMAGE_TAG=1.15.8.2-bionic
OPENRESTY_HTTP_PORT=80
OPENRESTY_CONTAINER_NAME=dnmp-openresty
OPENRESTY_LUA_DIR=./conf/lua

#[[ php5.6 ]]
#+--------------+
# PHP5.6
#+--------------+
PHP56_VERSION=5.6.40
PHP56_IMAGE_TAG=php5.6-v2
PHP56_FPM_PORT=9006
#PHP56_EXTENSIONS=gd,bcmath,pdo,mysql,mysqli,pdo_mysql,bz2,calendar,mcrypt,opcache,redis,pcntl,sockets,xdebug
PHP56_EXTENSIONS=gd,bcmath,pdo,mysql,mysqli,pdo_mysql,bz2,calendar,mcrypt,opcache,redis,pcntl,sockets,xdebug
PHP56_CONTAINER_NAME=dnmp-php56

#[[ php7.2 ]]
#+--------------+
# PHP7.2
#+--------------+
PHP72_VERSION=7.2.19
PHP72_IMAGE_TAG=php7.2-v5
PHP72_FPM_PORT=9007
PHP72_WORKERMAN_PORT=9502
PHP72_EXTENSIONS=pdo,mysqli,pdo_mysql,redis,sockets,xdebug,swoole
PHP72_CONTAINER_NAME=dnmp-php72

#[[ mysql ]]
#+--------------+
# PHP7.4
#+--------------+
PHP74_VERSION=7.4.0
PHP74_IMAGE_TAG=php7.4-v1
PHP74_FPM_PORT=9097
PHP74_EXTENSIONS=pdo,mysqli,pdo_mysql,redis,sockets,xdebug
PHP74_CONTAINER_NAME=dnmp-php7.4

#+--------------+
# MySQL
#+--------------+
MYSQL_IMAGE_TAG=5.7
MYSQL_HOST_PORT=3306
MYSQL_ROOT_PASSWORD=123456
MYSQL_DATA_DIR=./data/mysql
MYSQL_CONF_FILE=./conf/mysql/my.cnf
MYSQL_CONTAINER_NAME=dnmp-mysql

#[[ redis config ]]
#+--------------+
# Redis
#+--------------+
REDIS_VERSION=5.0.3-alpine
REDIS_IMAGE_TAG=5.0.3-alpine
REDIS_HOST_PORT=6379
REDIS_CONF_FILE=./conf/redis/redis.conf
REDIS_DATA_DIR=./data/redis
REDIS_CONTAINER_NAME=dnmp-redis

#[[ phpmyadmin config ]]
#+--------------+
# PHPMyAdmin
#+--------------+
PHPMYADMIN_TAG=latest
PHPMYADMIN_HOST_PORT=8082
PHPMYADMIN_HOST_PORT=8082

#+--------------+
# RabbitMQ
#+--------------+
RABBITMQ_VERSION=management

# 客户端接口
RABBITMQ_HOST_PORT_CLIENT=5672

# Web 管理界面 http://127.0.0.1:15672/
RABBITMQ_HOST_PORT_MANAGEMENT=15672

# 默认账号和密码
RABBITMQ_DEFAULT_USER=resty
RABBITMQ_DEFAULT_PASS=resty
RABBITMQ_CONTAINER_NAME=dnmp-rabbitmq
64 changes: 64 additions & 0 deletions dnmp/extensions/php74.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#!/bin/sh

echo
echo "============================================"
echo "Install extensions from : ${MORE_EXTENSION_INSTALLER}"
echo "PHP version : ${PHP_VERSION}"
echo "Extra Extensions : ${PHP_EXTENSIONS}"
echo "Multicore Compilation : ${MC}"
echo "Work directory : ${PWD}"
echo "============================================"
echo


if [ -z "${EXTENSIONS##*,mcrypt,*}" ]; then
echo "---------- mcrypt was REMOVED from PHP 7.2.0 ----------"
fi


if [ -z "${EXTENSIONS##*,sodium,*}" ]; then
echo "---------- Install sodium ----------"
echo "Sodium is bundled with PHP from PHP 7.2.0 "
fi


if [ -z "${EXTENSIONS##*,redis,*}" ]; then
echo "---------- Install redis ----------"
mkdir redis \
&& tar -xf redis-4.3.0.tgz -C redis --strip-components=1 \
&& ( cd redis && phpize && ./configure && make ${MC} && make install ) \
&& docker-php-ext-enable redis
fi


if [ -z "${EXTENSIONS##*,memcached,*}" ]; then
echo "---------- Install memcached ----------"
apk add --no-cache libmemcached-dev zlib-dev
printf "\n" | pecl install memcached-3.1.3
docker-php-ext-enable memcached
fi


if [ -z "${EXTENSIONS##*,swoole,*}" ]; then
echo "---------- Install swoole ----------"
mkdir swoole \
&& tar -xf swoole-4.3.5.tgz -C swoole --strip-components=1 \
&& ( cd swoole && phpize && ./configure --enable-openssl && make ${MC} && make install ) \
&& docker-php-ext-enable swoole
fi


if [ -z "${EXTENSIONS##*,pdo_sqlsrv,*}" ]; then
echo "---------- Install pdo_sqlsrv ----------"
apk add --no-cache unixodbc-dev
pecl install pdo_sqlsrv
docker-php-ext-enable pdo_sqlsrv
fi


if [ -z "${EXTENSIONS##*,sqlsrv,*}" ]; then
echo "---------- Install sqlsrv ----------"
apk add --no-cache unixodbc-dev
printf "\n" | pecl install sqlsrv
docker-php-ext-enable sqlsrv
fi

0 comments on commit 6be152b

Please sign in to comment.