diff --git a/doc/docker/docker-compose.yml b/doc/docker/docker-compose.yml new file mode 100644 index 0000000..7f06f49 --- /dev/null +++ b/doc/docker/docker-compose.yml @@ -0,0 +1,131 @@ +version: '3.9' + +services: + novel-mysql: + container_name: novel-mysql + image: mysql:8.0 + restart: always + hostname: novel-mysql + environment: + - MYSQL_ROOT_PASSWORD=test123456 + volumes: + - "/data/docker/mysql/data:/var/lib/mysql" + - "/data/docker/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql" + command: mysqld --max_allowed_packet=100M + ports: + - 3306:3306 + networks: + - novelnet + + novel-redis: + container_name: novel-redis + image: redis:7.0 + restart: always + hostname: novel-redis + command: redis-server --save 60 1 --loglevel warning + ports: + - 6379:6379 + networks: + - novelnet + + novel-rabbitmq: + container_name: novel-rabbitmq + image: rabbitmq:3-management + restart: always + hostname: novel-rabbitmq + environment: + - RABBITMQ_DEFAULT_USER=xxyopen + - RABBITMQ_DEFAULT_PASS=test123456 + - RABBITMQ_DEFAULT_VHOST=novel + ports: + - 15672:15672 + - 5672:5672 + networks: + - novelnet + + novel-elasticsearch: + container_name: novel-elasticsearch + image: elasticsearch:8.6.2 + restart: always + hostname: novel-elasticsearch + environment: + # 内存不够用的话最好不要配置这个 + # - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + - discovery.type=single-node + # 挂载本地目录时需要修改该目录的读写权限才能正常启动 + # volumes: + # - /data/docker/elasticsearch/data:/usr/share/elasticsearch/data + # - /data/docker/elasticsearch/logs:/usr/share/elasticsearch/logs + ports: + - 9200:9200 + - 9300:9300 + networks: + - novelnet + + novel-kibana: + container_name: novel-kibana + image: kibana:8.6.2 + restart: always + hostname: novel-kibana + environment: + ELASTICSEARCH_HOSTS: '["https://novel-elasticsearch:9200"]' + volumes: + - /data/docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml + ports: + - 5601:5601 + depends_on: + - novel-elasticsearch + networks: + - novelnet + + novel-xxl-job-admin: + container_name: novel-xxl-job-admin + image: xuxueli/xxl-job-admin:2.3.1 + restart: always + hostname: novel-xxl-job-admin + environment: + - PARAMS=--spring.datasource.url=jdbc:mysql://novel-mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=test123456 --xxl.job.accessToken=123 + - JAVA_OPTS=-Xmx512m + volumes: + - /data/docker/xxl-job-admin/data/applogs:/data/applogs + ports: + - 8080:8080 + depends_on: + - novel-mysql + networks: + - novelnet + + novel-nacos-server: + container_name: novel-nacos-server + image: nacos/nacos-server:v2.2.1 + restart: always + hostname: novel-nacos-server + environment: + - PREFER_HOST_MODE=hostname + - MODE=standalone + - SPRING_DATASOURCE_PLATFORM=mysql + - MYSQL_SERVICE_HOST=novel-mysql + - MYSQL_SERVICE_DB_NAME=nacos + - MYSQL_SERVICE_PORT=3306 + - MYSQL_SERVICE_USER=root + - MYSQL_SERVICE_PASSWORD=test123456 + - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true + - NACOS_AUTH_IDENTITY_KEY=xxyopen + - NACOS_AUTH_IDENTITY_VALUE=xxyopen + - NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 + - JVM_XMS=125M + - JVM_XMX=125M + - JVM_XMN=50M + - JVM_MS=50M + - JVM_MMS=50M + ports: + - "8848:8848" + - "9848:9848" + depends_on: + - novel-mysql + networks: + - novelnet + +networks: + novelnet: + driver: bridge