version: '3'
services:
nginx:
image: nginx:1.21.0
container_name: nginx
restart: always
privileged: true
environment:
- TZ=Asia/Shanghai
ports:
- 80:80
- 7000:7000
- 8000-8013:8000-8013
volumes:
- ./www:/usr/share/nginx/html:rw
- ./nginx/conf.d:/etc/nginx/conf.d:rw
- ./nginx/log:/var/log/nginx:rw
php:
image: registry.cn-hangzhou.aliyuncs.com/wqs-php/php7.3-fpm:v5
container_name: php
restart: always
privileged: true
expose:
- 9000
volumes:
- ./www:/var/www/html:rw
depends_on:
- rabbitmq
- mongodb
mysql:
image: mysql:5.7.31
container_name: mysql
restart: always
privileged: true
ports:
- 3306:3306
volumes:
- ./mysql/log:/var/log/mysql:rw
- ./mysql/conf/my.cnf:/etc/mysql/my.cnf:rw
- ./mysql/data:/var/lib/mysql:rw
environment:
MYSQL_ROOT_PASSWORD: "123456"
TZ: Asia/Shanghai
command: [
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_general_ci',
'--max_connections=3000',
'--default-authentication-plugin=mysql_native_password'
]
redis:
image: redis
restart: always
container_name: redis
environment:
- TZ=Asia/Shanghai
ports:
- 6379:6379
volumes:
- ./redis/conf/:/usr/local/etc/redis/redis.conf:rw
- ./redis/data/:/data:rw
- ./redis/logs:/logs:rw
command: [
"redis-server",
"/usr/local/etc/redis/redis.conf"
]
mongodb:
image: mongo:latest
container_name: mongodb
restart: always
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/data/logs
- MONGO_INITDB_ROOT_USERNAME=
- MONGO_INITDB_ROOT_PASSWORD=
- TZ=Asia/Shanghai
volumes:
- ./mongodb/data:/data/db:rw
- ./mongodb/logs:/data/logs:rw
ports:
- 27017:27017
rabbitmq:
image: rabbitmq:3.8.3-management
container_name: rabbitmq
restart: always
hostname: myRabbitmq
ports:
- 15672:15672
- 5672:5672
volumes:
- ./rabbitmq/data:/var/lib/rabbitmq:rw
environment:
- RABBITMQ_DEFAULT_USER=root
- RABBITMQ_DEFAULT_PASS=root
文件夹生成脚本:
#!/bin/bash
#创建mysql本地文件夹
sudo mkdir -p ./mysql/{conf,data,log}
#新建mysql配置文件
sudo tee ./mysql/conf/my.cnf<<-'EOF'
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#bind-address = 127.0.0.1
default-time_zone = '+8:00'
# 更改字符集 如果想Mysql在后续的操作中文不出现乱码,则需要修改配置文件内容
symbolic-links=0
character-set-server=utf8mb4
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
EOF
# redis
sudo mkdir -p ./redis/data
sudo mkdir -p ./redis/logs
sudo mkdir -p ./redis/{conf,data,logs}
#新建redis配置文件
sudo tee ./redis/conf/redis.conf<<-'EOF'
# 启用守护进程后,Redis会把pid写到一个pidfile中,在/var/run/redis.pid
daemonize yes
# bind 127.0.0.1
#监听端口
port 3306
# 当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 0
# 日志记录方式,默认为标准输出,如果配置为redis为守护进程方式运行,而这里又配置为标准输出,则日志将会发送给/dev/null
logfile /logs/redis.log
#密码
#requirepass 123456
# 设置数据库的数量,默认数据库为0,可以使用select <dbid>命令在连接上指定数据库id
# dbid是从0到‘databases’-1的数目
databases 16
EOF
# mongodb
sudo mkdir -p ./mongodb/data
sudo mkdir -p ./mongodb/logs
# rabbitmq
sudo mkdir -p ./rabbitmq/data