version: '3'
services:
# JDK 17 应用服务 - 用于运行JAR文件
app:
image: openjdk:17-jdk
container_name: app
working_dir: /app
volumes:
- ./volumes/app:/app
ports:
- "8820:8820"
environment:
- TZ=Asia/Shanghai
# 启动命令,用于运行JAR文件,请根据实际JAR文件名修改
#command: java -jar /app/your-application.jar
networks:
- app-network
# MySQL 5.7 数据库
mysql:
image: mysql:5.7
container_name: mysql
restart: always
ports:
- "13306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- TZ=Asia/Shanghai
volumes:
- ./volumes/mysql/data:/var/lib/mysql
- ./volumes/mysql/conf:/etc/mysql/conf.d
- ./volumes/mysql/init:/docker-entrypoint-initdb.d
networks:
- app-network
# Elasticsearch 7.14.2
elasticsearch:
image: elasticsearch:7.14.2
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- TZ=Asia/Shanghai
volumes:
- ./volumes/elasticsearch/data:/usr/share/elasticsearch/data
# - ./volumes/elasticsearch/config:/usr/share/elasticsearch/config
networks:
- app-network
# Redis 5
redis:
image: redis:5
container_name: redis
ports:
- "6379:6379"
volumes:
- ./volumes/redis/data:/data
- ./volumes/redis/conf/redis.conf:/etc/redis/redis.conf
command: redis-server /etc/redis/redis.conf
environment:
- TZ=Asia/Shanghai
networks:
- app-network
# Nginx 1.21
nginx:
image: nginx:1.21
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./volumes/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ./volumes/nginx/conf/conf.d:/etc/nginx/conf.d
- ./volumes/nginx/html:/usr/share/nginx/html
- ./volumes/nginx/logs:/var/log/nginx
environment:
- TZ=Asia/Shanghai
networks:
- app-network
# Nacos 2.1.1
nacos:
image: nacos/nacos-server:v2.1.1
container_name: nacos
ports:
- "8848:8848"
- "9848:9848"
- "9849:9849"
environment:
- MODE=standalone
- PREFER_HOST_MODE=hostname
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=root
- JVM_XMS=512m
- JVM_XMX=512m
- TZ=Asia/Shanghai
volumes:
- ./volumes/nacos/logs:/home/nacos/logs
- ./volumes/nacos/conf:/home/nacos/conf
depends_on:
- mysql
networks:
- app-network
networks:
app-network:
driver: bridge