135 lines
3.2 KiB
YAML
135 lines
3.2 KiB
YAML
version: '3.8'
|
||
|
||
networks:
|
||
my-network:
|
||
driver: bridge
|
||
|
||
services:
|
||
# 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:
|
||
- '13306:3306'
|
||
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:
|
||
- '16379:6379'
|
||
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 后端
|
||
group-buying-sys:
|
||
build:
|
||
context: ../.. # 从 docs/dev-ops 回到项目根
|
||
dockerfile: group-buying-sys-app/Dockerfile
|
||
image: smile/group-buying-sys:latest
|
||
container_name: group-buying-sys
|
||
restart: on-failure
|
||
depends_on:
|
||
mysql:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
ports:
|
||
- '8091:8091'
|
||
environment:
|
||
- TZ=PRC
|
||
- SERVER_PORT=8091
|
||
- 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
|
||
volumes:
|
||
- ./log:/data/log
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: '10m'
|
||
max-file: '3'
|
||
networks:
|
||
- my-network
|
||
|
||
# 5. phpMyAdmin(只有在 webui profile 下才启动)
|
||
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
|
||
profiles: ["webui"]
|
||
|
||
# 6. Redis Commander(只有在 webui profile 下才启动)
|
||
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
|
||
profiles: ["webui"]
|