2025-06-19 20:34:58 +08:00
|
|
|
|
version: '3.8'
|
2025-07-08 15:44:31 +08:00
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
my-network:
|
|
|
|
|
driver: bridge
|
|
|
|
|
|
2025-06-19 20:34:58 +08:00
|
|
|
|
services:
|
2025-07-08 15:44:31 +08:00
|
|
|
|
# 1. 前端
|
|
|
|
|
group-buy-market-front:
|
|
|
|
|
image: nginx:alpine
|
|
|
|
|
container_name: group-buy-market-front
|
|
|
|
|
restart: always
|
|
|
|
|
ports:
|
|
|
|
|
- '80:80'
|
|
|
|
|
- '443:443'
|
|
|
|
|
volumes:
|
|
|
|
|
- ./nginx/html:/usr/share/nginx/html
|
|
|
|
|
privileged: true
|
|
|
|
|
networks:
|
|
|
|
|
- my-network
|
|
|
|
|
|
|
|
|
|
# 2. MySQL
|
|
|
|
|
mysql:
|
|
|
|
|
image: mysql:8.0
|
|
|
|
|
container_name: mysql
|
|
|
|
|
command: --default-authentication-plugin=mysql_native_password
|
|
|
|
|
restart: always
|
|
|
|
|
environment:
|
|
|
|
|
TZ: Asia/Shanghai
|
|
|
|
|
MYSQL_ROOT_PASSWORD: 123456
|
|
|
|
|
ports:
|
2025-07-08 18:08:38 +08:00
|
|
|
|
- '13306:3306'
|
2025-07-08 15:44:31 +08:00
|
|
|
|
volumes:
|
|
|
|
|
- ./mysql/my.cnf:/etc/mysql/conf.d/mysql.cnf:ro
|
|
|
|
|
- ./mysql/sql:/docker-entrypoint-initdb.d
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ['CMD', 'mysqladmin', 'ping', '-h', 'localhost']
|
|
|
|
|
interval: 5s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 10
|
|
|
|
|
start_period: 15s
|
|
|
|
|
networks:
|
|
|
|
|
- my-network
|
|
|
|
|
|
|
|
|
|
# 3. Redis
|
|
|
|
|
redis:
|
|
|
|
|
image: redis:6.2
|
|
|
|
|
container_name: redis
|
|
|
|
|
restart: always
|
|
|
|
|
hostname: redis
|
|
|
|
|
ports:
|
2025-07-08 18:08:38 +08:00
|
|
|
|
- '16379:6379'
|
2025-07-08 15:44:31 +08:00
|
|
|
|
volumes:
|
|
|
|
|
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
|
|
|
|
|
command: redis-server /usr/local/etc/redis/redis.conf
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ['CMD', 'redis-cli', 'ping']
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 5s
|
|
|
|
|
retries: 3
|
|
|
|
|
networks:
|
|
|
|
|
- my-network
|
|
|
|
|
|
|
|
|
|
# 4. Java 后端
|
2025-06-19 20:34:58 +08:00
|
|
|
|
group-buying-sys:
|
2025-07-08 16:27:21 +08:00
|
|
|
|
build:
|
2025-07-08 18:08:38 +08:00
|
|
|
|
context: ../.. # 从 docs/dev-ops 回到项目根
|
2025-07-08 16:27:21 +08:00
|
|
|
|
dockerfile: group-buying-sys-app/Dockerfile
|
|
|
|
|
image: smile/group-buying-sys:latest
|
2025-06-19 20:34:58 +08:00
|
|
|
|
container_name: group-buying-sys
|
|
|
|
|
restart: on-failure
|
2025-07-08 15:44:31 +08:00
|
|
|
|
depends_on:
|
|
|
|
|
mysql:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
redis:
|
|
|
|
|
condition: service_healthy
|
2025-06-19 20:34:58 +08:00
|
|
|
|
ports:
|
2025-07-08 15:44:31 +08:00
|
|
|
|
- '8091:8091'
|
2025-06-19 20:34:58 +08:00
|
|
|
|
environment:
|
|
|
|
|
- TZ=PRC
|
|
|
|
|
- SERVER_PORT=8091
|
2025-07-08 15:44:31 +08:00
|
|
|
|
- SPRING_DATASOURCE_USERNAME=root
|
|
|
|
|
- SPRING_DATASOURCE_PASSWORD=123456
|
|
|
|
|
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/big_market?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false
|
|
|
|
|
- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver
|
|
|
|
|
- SPRING_HIKARI_POOL_NAME=Retail_HikariCP
|
|
|
|
|
- REDIS_SDK_CONFIG_HOST=redis
|
|
|
|
|
- REDIS_SDK_CONFIG_PORT=6379
|
2025-06-19 20:34:58 +08:00
|
|
|
|
volumes:
|
|
|
|
|
- ./log:/data/log
|
|
|
|
|
logging:
|
2025-07-08 15:44:31 +08:00
|
|
|
|
driver: json-file
|
2025-06-19 20:34:58 +08:00
|
|
|
|
options:
|
2025-07-08 15:44:31 +08:00
|
|
|
|
max-size: '10m'
|
|
|
|
|
max-file: '3'
|
2025-06-19 20:34:58 +08:00
|
|
|
|
networks:
|
|
|
|
|
- my-network
|
|
|
|
|
|
2025-07-08 18:08:38 +08:00
|
|
|
|
# 5. phpMyAdmin(只有在 webui profile 下才启动)
|
2025-07-08 15:44:31 +08:00
|
|
|
|
phpmyadmin:
|
|
|
|
|
image: phpmyadmin:5.2.1
|
|
|
|
|
container_name: phpmyadmin
|
|
|
|
|
hostname: phpmyadmin
|
|
|
|
|
depends_on:
|
|
|
|
|
mysql:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
ports:
|
|
|
|
|
- '8899:80'
|
|
|
|
|
environment:
|
|
|
|
|
- PMA_HOST=mysql
|
|
|
|
|
- PMA_PORT=3306
|
|
|
|
|
- MYSQL_ROOT_PASSWORD=123456
|
|
|
|
|
networks:
|
|
|
|
|
- my-network
|
2025-07-08 18:08:38 +08:00
|
|
|
|
profiles: ["webui"]
|
2025-07-08 15:44:31 +08:00
|
|
|
|
|
2025-07-08 18:08:38 +08:00
|
|
|
|
# 6. Redis Commander(只有在 webui profile 下才启动)
|
2025-07-08 15:44:31 +08:00
|
|
|
|
redis-admin:
|
|
|
|
|
image: spryker/redis-commander:0.8.0
|
|
|
|
|
container_name: redis-admin
|
|
|
|
|
hostname: redis-commander
|
|
|
|
|
restart: always
|
|
|
|
|
depends_on:
|
|
|
|
|
redis:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
ports:
|
|
|
|
|
- '8081:8081'
|
|
|
|
|
environment:
|
|
|
|
|
- REDIS_HOSTS=local:redis:6379
|
|
|
|
|
- HTTP_USER=admin
|
|
|
|
|
- HTTP_PASSWORD=admin
|
|
|
|
|
networks:
|
|
|
|
|
- my-network
|
2025-07-08 18:08:38 +08:00
|
|
|
|
profiles: ["webui"]
|