# 命令执行 docker-compose up -d 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" 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 # phpmyadmin https://hub.docker.com/_/phpmyadmin phpmyadmin: image: phpmyadmin:5.2.1 container_name: phpmyadmin hostname: phpmyadmin ports: - 8899:80 environment: - PMA_ARBITRARY=1 - PMA_HOST=mysql - PMA_PORT=3306 - MYSQL_ROOT_PASSWORD=123456 networks: - my-network # RedisAdmin https://github.com/joeferner/redis-commander redis-admin: image: spryker/redis-commander:0.8.0 container_name: redis-admin hostname: redis-commander restart: always ports: - 8081:8081 environment: - REDIS_HOSTS=local:redis:6379 networks: - my-network depends_on: redis: condition: service_healthy # 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" networks: my-network: driver: bridge