chatgpt-api/docs/dev-ops/environment/docker-compose.yml

169 lines
4.8 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 命令执行 docker-compose up -d
name: chatgpt-env
version: '3.9'
# 安装开发环境
# 配置中心nacoshttp://127.0.0.1:8848/nacos - 【账号nacos 密码nacos】
# 消息rocketmqhttp://localhost:8080/#/ - 【账号admin 密码admin】
# 任务调度xxl-job-adminhttp://127.0.0.1:9090/xxl-job-admin/ - 【账号admin 密码123456】
# 数据库mysql
# 缓存redis
services:
# # 注册中心 https://github.com/nacos-group/nacos-docker - 其他配置可参考(集群)
# # http://127.0.0.1:8848/nacos 【账号nacos 密码nacos】
# nacos:
# image: nacos/nacos-server:v2.2.3-slim
# container_name: nacos
# restart: always
# ports:
# - "8848:8848"
# - "9848:9848"
# - "9849:9849"
# environment:
# - PREFER_HOST_MODE=hostname
# - MODE=standalone
# - SPRING_DATASOURCE_PLATFORM=mysql
# - MYSQL_SERVICE_HOST=mysql
# - MYSQL_SERVICE_DB_NAME=nacos_config
# - MYSQL_SERVICE_PORT=3306
# - MYSQL_SERVICE_USER=root
# - MYSQL_SERVICE_PASSWORD=123456
# - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
# - NACOS_AUTH_IDENTITY_KEY=2222
# - NACOS_AUTH_IDENTITY_VALUE=2xxx
# - NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
# networks:
# - my-network
# depends_on:
# mysql:
# condition: service_healthy
#
# # http://127.0.0.1:9090/xxl-job-admin admin/123456 - 安装后稍等会访问即可
# # 官网镜像为 xuxueli/xxl-job-admin:2.4.0 但不支持ARM架构【需要自己打包】所以找了一个 kuschzzp/xxl-job-aarch64:2.4.0 镜像支持 AMD/ARM
# xxl-job-admin:
# image: xuxueli/xxl-job-admin:2.4.0
# container_name: xxl-job-admin
# restart: always
# depends_on:
# mysql:
# condition: service_healthy
# ports:
# - "9090:9090"
# links:
# - mysql
# volumes:
# - ./data/logs:/data/applogs
# - ./data/xxl-job/:/xxl-job
# environment:
# - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/xxl_job?serverTimezone=UTC&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Shanghai
# - SPRING_DATASOURCE_USERNAME=root
# - SPRING_DATASOURCE_PASSWORD=123456
# - SERVER_PORT=9090
# networks:
# - my-network
#
# # MySQL 增加健康检测,避免
# mysql:
# image: mysql:8.0.32
# container_name: mysql
# hostname: mysql
# command: --default-authentication-plugin=mysql_native_password
# restart: always
# environment:
# TZ: Asia/Shanghai
# MYSQL_ROOT_PASSWORD: 123456
# MYSQL_USER: xfg
# MYSQL_PASSWORD: 123456
# networks:
# - my-network
# depends_on:
# - mysql-job-dbdata
# ports:
# - "13306:3306"
# volumes:
# - ./sql:/docker-entrypoint-initdb.d
# healthcheck:
# test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
# interval: 5s
# timeout: 10s
# retries: 10
# start_period: 15s
# deploy:
# resources:
# limits:
# cpus: '1.00'
# memory: 512M
# volumes_from:
# - mysql-job-dbdata
#
# # 自动加载数据
# mysql-job-dbdata:
# image: alpine:3.18.2
# container_name: mysql-job-dbdata
# volumes:
# - /var/lib/mysql
#
# # Redis
# redis:
# image: redis:7.2.0
# container_name: redis
# restart: always
# hostname: redis
# ports:
# - 6379:6379
# volumes:
# - ./redis/redis.conf:/usr/local/etc/redis/redis.conf
# command: redis-server /usr/local/etc/redis/redis.conf
# networks:
# - my-network
# healthcheck:
# test: [ "CMD", "redis-cli", "ping" ]
# interval: 10s
# timeout: 5s
# retries: 3
#
# # https://hub.docker.com/r/xuchengen/rocketmq
# # 注意修改项;
# # 01data/rocketmq/conf/broker.conf 添加 brokerIP1=127.0.0.1
# # 02data/console/config/application.properties server.port=9009 - 如果8080端口被占用可以修改或者添加映射端口
# rocketmq:
# image: livinphp/rocketmq:5.1.0
# container_name: rocketmq
# ports:
# - 8080:8080
# - 9876:9876
# - 10909:10909
# - 10911:10911
# - 10912:10912
# volumes:
# - ./rocketmq/data:/home/app/data
# environment:
# TZ: "Asia/Shanghai"
# NAMESRV_ADDR: "rocketmq:9876"
nginx:
image: nginx
container_name: nginx
ports:
- 80:80
volumes:
- ./nginx/html:/usr/share/nginx/html
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf.d:/etc/nginx/conf.d
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- my-network
depends_on:
- chatgpt-api
chatgpt-api:
image: kazusa8/chatgpt-api:1.0
container_name: chatgpt-api
ports:
- 8091:8091
networks:
- my-network
networks:
my-network:
driver: bridge