# 命令执行 docker-compose up -d name: chatgpt-env version: '3.9' # 安装开发环境 # 配置中心nacos:http://127.0.0.1:8848/nacos - 【账号:nacos 密码:nacos】 # 消息rocketmq:http://localhost:8080/#/ - 【账号:admin 密码:admin】 # 任务调度xxl-job-admin:http://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 # # 注意修改项; # # 01:data/rocketmq/conf/broker.conf 添加 brokerIP1=127.0.0.1 # # 02:data/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