services: nginx: image: nginx:latest container_name: cozeloop-nginx restart: always networks: - mynetwork ports: - "8082:80" volumes: - shared_frontend_dist:/usr/share/nginx/html:ro - ./conf/default/nginx/server.conf:/etc/nginx/nginx.conf:ro - ./conf/default/nginx/entrypoint.sh:/cozeloop/conf/nginx/entrypoint.sh - ./conf/default/nginx/healthcheck.sh:/cozeloop/conf/nginx/healthcheck.sh - ./conf/default/tools:/cozeloop/conf/tools depends_on: app: condition: service_healthy entrypoint: [ "bash", "/cozeloop/conf/nginx/entrypoint.sh" ] healthcheck: test: [ "CMD", "sh", "/cozeloop/conf/nginx/healthcheck.sh" ] interval: 60s timeout: 3s retries: 5 start_period: 10s app: platform: linux/amd64 build: context: . dockerfile: Dockerfile args: RUN_MODE: ${RUN_MODE:-dev} container_name: cozeloop-app restart: always networks: - mynetwork ports: - "40000:40000" # dlv - "8080:8080" # app - "8888:8888" # hertz environment: - RUN_MODE=${RUN_MODE:-dev} volumes: - shared_frontend_dist:/cozeloop-bin/frontend/dist - .:/cozeloop depends_on: mysql: condition: service_healthy redis: condition: service_healthy minio: condition: service_healthy clickhouse: condition: service_healthy rocketmq-namesrv: condition: service_healthy rocketmq-broker: condition: service_healthy entrypoint: [ "sh", "/cozeloop/conf/default/app/entrypoint.sh" ] healthcheck: test: [ "CMD", "sh", "/cozeloop/conf/default/app/healthcheck.sh" ] interval: 15s timeout: 5s retries: 30 start_period: 20s redis: image: redis:latest container_name: cozeloop-redis restart: always networks: - mynetwork ports: - "6379:6379" volumes: - redis_data:/data - ./conf/default/redis:/cozeloop/conf/redis - ./conf/default/tools:/cozeloop/conf/tools entrypoint: [ "bash", "/cozeloop/conf/redis/entrypoint.sh" ] healthcheck: test: [ "CMD", "sh", "/cozeloop/conf/redis/healthcheck.sh" ] interval: 5s timeout: 3s retries: 5 start_period: 10s mysql: image: mysql:latest container_name: cozeloop-mysql restart: always networks: - mynetwork ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./conf/default/mysql:/cozeloop/conf/mysql - ./conf/default/tools:/cozeloop/conf/tools entrypoint: [ "bash", "/cozeloop/conf/mysql/entrypoint.sh" ] healthcheck: test: [ "CMD", "bash", "/cozeloop/conf/mysql/healthcheck.sh" ] interval: 10s timeout: 5s retries: 10 start_period: 30s clickhouse: image: clickhouse/clickhouse-server:latest container_name: cozeloop-clickhouse restart: always ports: - "8123:8123" # http - "9008:9008" # tcp volumes: - clickhouse_data:/var/lib/clickhouse - ./conf/default/clickhouse:/cozeloop/conf/clickhouse - ./conf/default/tools:/cozeloop/conf/tools networks: - mynetwork user: "101:101" entrypoint: [ "bash", "/cozeloop/conf/clickhouse/entrypoint.sh" ] healthcheck: test: [ "CMD", "bash", "/cozeloop/conf/clickhouse/healthcheck.sh" ] interval: 10s timeout: 5s retries: 3 start_period: 30s minio: image: minio/minio:latest container_name: cozeloop-minio restart: always networks: - mynetwork ports: - "19000:19000" # server - "19001:19001" # panel volumes: - minio_data:/minio_data - minio_config:/root/.minio - ./conf/default/minio:/cozeloop/conf/minio - ./conf/default/tools:/cozeloop/conf/tools entrypoint: [ "bash", "/cozeloop/conf/minio/entrypoint.sh" ] healthcheck: test: [ "CMD", "sh", "/cozeloop/conf/minio/healthcheck.sh" ] interval: 15s timeout: 5s retries: 3 start_period: 30s rocketmq-namesrv: image: apache/rocketmq:latest container_name: cozeloop-namesrv restart: always networks: - mynetwork ports: - "9876:9876" volumes: - rocketmq_namesrv_data:/store - ./conf/default/rocketmq/namesrv:/cozeloop/conf/rocketmq/namesrv - ./conf/default/rocketmq/tools:/cozeloop/conf/rocketmq/tools - ./conf/default/tools:/cozeloop/conf/tools user: "0:0" entrypoint: [ "sh", "/cozeloop/conf/rocketmq/namesrv/entrypoint.sh" ] healthcheck: test: [ "CMD", "bash", "/cozeloop/conf/rocketmq/namesrv/healthcheck.sh" ] interval: 15s timeout: 5s retries: 3 start_period: 5s rocketmq-broker: image: apache/rocketmq:latest container_name: cozeloop-broker restart: always networks: - mynetwork ports: - "10911:10911" - "10909:10909" volumes: - rocketmq_broker_data:/store - ./conf/default/rocketmq/broker:/cozeloop/conf/rocketmq/broker - ./conf/default/rocketmq/tools:/cozeloop/conf/rocketmq/tools - ./conf/default/tools:/cozeloop/conf/tools depends_on: rocketmq-namesrv: condition: service_healthy user: "0:0" entrypoint: [ "bash", "/cozeloop/conf/rocketmq/broker/entrypoint.sh"] healthcheck: test: [ "CMD", "bash", "/cozeloop/conf/rocketmq/broker/healthcheck.sh" ] interval: 15s timeout: 5s retries: 3 start_period: 90s volumes: shared_frontend_dist: mysql_data: redis_data: clickhouse_data: minio_data: minio_config: rocketmq_namesrv_data: rocketmq_broker_data: networks: mynetwork: driver: bridge # 用户访问 http://HOST_IP:8082 # 登录:docker exec -it cozeloop-nginx bash # 登录:docker exec -it cozeloop-app bash # 查日志1 - 容器如果没启动:docker logs -n100 cozeloop-app # 查日志2 - 容器如果启动了:docker logs -fn100 cozeloop-app # 登录:docker exec -it cozeloop-redis redis-cli -a cozeloop-redis # 登录后: # INFO # KEYS * # SET mykey "Hello World" # GET mykey # SELECT 1 # 切换到第1号数据库 # DBSIZE # 查看当前数据库键数量 # 登录:docker exec -it cozeloop-mysql mysql -u root -p cozeloop-mysql # 登录后: # SHOW DATABASES; # USE cozeloop-mysql; # SHOW TABLES; # SELECT * FROM your_table LIMIT 10; # 查所有sql语句日志:docker exec -it cozeloop-mysql tail -f /var/lib/mysql/general.log # 查报错日志:docker exec -it cozeloop-mysql tail -f /var/lib/mysql/mysql_error.log # 查慢sql:docker exec -it cozeloop-mysql tail -f /var/lib/mysql/mysql_slow.log # 进入容器:docker exec -it cozeloop-clickhouse bash # 登录ck:clickhouse-client --host cozeloop-clickhouse --port 9008 --password=cozeloop-clickhouse --database=cozeloop-clickhouse # show databases; # use `cozeloop-clickhouse`; # show tables; # select * from your_table limit 10; # 查service查询ck的具体sql:ck默认存在system.query_log系统表里,select即可 # 管理后台:http://${开发机IP}:19001/browser # 检查topic:docker exec -it cozeloop-broker /home/rocketmq/rocketmq-5.3.2/bin/mqadmin topicList -n cozeloop-namesrv:9876 # 检查consumer:docker exec -it cozeloop-broker /home/rocketmq/rocketmq-5.3.2/bin/mqadmin consumerProgress -n cozeloop-namesrv:9876 # 检查本机ip:docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cozeloop-namesrv # 停止所有容器 #docker stop $(docker ps -aq) 2>/dev/null # 删除所有容器 #docker rm -f $(docker ps -aq) 2>/dev/null # 删除所有镜像 #docker rmi -f $(docker images -q) 2>/dev/null # 删除所有自定义网络(保留默认 bridge/host/none) #docker network rm $(docker network ls | awk '$3 != "bridge" && $3 != "host" && $3 != "none" { print $1 }') 2>/dev/null # 删除所有卷 #docker volume rm $(docker volume ls -q) 2>/dev/null # 清理构建缓存 #docker builder prune -f #docker network rm cozeloop_mynetwork #docker ps -a # 无容器 #docker images # 无镜像 #docker volume ls # 无卷 #docker network ls # 无多余网络