Files
Arch1Panel/apps/apipark/latest/docker-compose-test.yml
2025-08-28 17:24:54 +00:00

226 lines
6.4 KiB
YAML
Raw 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.
version: '3'
services:
apipark-mysql:
image: mysql:8.0.37
privileged: true
restart: always
container_name: apipark-mysql
hostname: apipark-mysql
command:
- "--character-set-server=utf8mb4"
- "--collation-server=utf8mb4_unicode_ci"
ports:
- "33306:3306"
environment:
- MYSQL_ROOT_PASSWORD={MYSQL_PWD}
- MYSQL_DATABASE=apipark
volumes:
- /var/lib/apipark/mysql:/var/lib/mysql
networks:
- apipark
apipark:
image: apipark/apipark:v1.9.0-beta
container_name: apipark
privileged: true
restart: always
networks:
- apipark
ports:
- "18288:8288"
depends_on:
- apipark-mysql
environment:
- MYSQL_USER_NAME=root
- MYSQL_PWD={MYSQL_PWD}
- MYSQL_IP=apipark-mysql
- MYSQL_PORT=3306 #mysql端口
- MYSQL_DB="apipark"
- ERROR_DIR=work/logs # 日志放置目录
- ERROR_FILE_NAME=error.log # 错误日志文件名
- ERROR_LOG_LEVEL=info # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info
- ERROR_EXPIRE=7d # 错误日志过期时间默认单位为天d|天h|小时, 不合法配置默认为7d
- ERROR_PERIOD=day # 错误日志切割周期仅支持day、hour
- REDIS_ADDR=apipark-redis:6379 #Redis集群地址 多个用,隔开
- REDIS_PWD={REDIS_PWD} # Redis密码
- ADMIN_PASSWORD={ADMIN_PASSWORD}
- Init=true
- InfluxdbToken={INFLUXDB_TOKEN}
apipark-influxdb:
image: influxdb:2.6
privileged: true
restart: always
container_name: apipark-influxdb
hostname: apipark-influxdb
ports:
- "8086:8086"
volumes:
- /var/lib/apipark/influxdb2:/var/lib/influxdb2
environment:
- DOCKER_INFLUXDB_INIT_USERNAME=admin
- DOCKER_INFLUXDB_INIT_PASSWORD=Key123qaz
- DOCKER_INFLUXDB_INIT_ORG=apipark
- DOCKER_INFLUXDB_INIT_BUCKET=apinto
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN={INFLUXDB_TOKEN}
- DOCKER_INFLUXDB_INIT_MODE=setup
networks:
- apipark
apipark-redis:
container_name: apipark-redis
image: redis:7.2.4
hostname: apipark-redis
privileged: true
restart: always
ports:
- 6379:6379
command:
- bash
- -c
- "redis-server --protected-mode yes --logfile redis.log --appendonly no --port 6379 --requirepass {REDIS_PWD}"
networks:
- apipark
apipark-loki:
container_name: apipark-loki
image: grafana/loki:3.2.1
hostname: apipark-loki
privileged: true
user: root
restart: always
ports:
- 3100:3100
volumes:
- /var/lib/apipark/loki:/tmp/loki
entrypoint:
- sh
- -euc
- |
mkdir -p /mnt/config
cat <<EOF > /mnt/config/loki-config.yaml
---
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9096
common:
instance_addr: 127.0.0.1
path_prefix: /tmp/loki
storage:
filesystem:
chunks_directory: /tmp/loki/chunks
rules_directory: /tmp/loki/rules
replication_factor: 1
ring:
kvstore:
store: inmemory
query_range:
results_cache:
cache:
embedded_cache:
enabled: true
max_size_mb: 100
schema_config:
configs:
- from: 2020-10-24
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
limits_config:
max_query_length: 90d # 设置最大查询时长为 30 天
ruler:
alertmanager_url: http://localhost:9093
# By default, Loki will send anonymous, but uniquely-identifiable usage and configuration
# analytics to Grafana Labs. These statistics are sent to https://stats.grafana.org/
#
# Statistics help us better understand how Loki is used, and they show us performance
# levels for most users. This helps us prioritize features and documentation.
# For more information on what's sent, look at
# https://github.com/grafana/loki/blob/main/pkg/analytics/stats.go
# Refer to the buildReport method to see what goes into a report.
#
# If you would like to disable reporting, uncomment the following lines:
#analytics:
# reporting_enabled: false
table_manager:
retention_period: 90d
EOF
/usr/bin/loki -config.file=/mnt/config/loki-config.yaml
networks:
- apipark
apipark-grafana:
container_name: apipark-grafana
image: grafana/grafana:11.3.2
hostname: apipark-grafana
privileged: true
restart: always
environment:
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
depends_on:
- apipark-loki
entrypoint:
- sh
- -euc
- |
mkdir -p /etc/grafana/provisioning/datasources
cat <<EOF > /etc/grafana/provisioning/datasources/ds.yaml
apiVersion: 1
datasources:
- name: Loki
type: loki
access: proxy
url: http://apipark-loki:3100
EOF
/run.sh
ports:
- "3000:3000"
healthcheck:
test: [ "CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3000/api/health || exit 1" ]
interval: 10s
timeout: 5s
retries: 5
networks:
- apipark
apipark-nsq:
container_name: apipark-nsq
image: nsqio/nsq:v1.3.0
hostname: apipark-nsq
privileged: true
restart: always
command:
- /nsqd
ports:
- 4150:4150
- 4151:4151
networks:
- apipark
apipark-apinto:
image: eolinker/apinto-gateway
container_name: apipark-apinto
privileged: true
restart: always
ports:
- "18099:8099"
- "19400:9400"
- "19401:9401"
volumes:
- /var/lib/apipark/apinto/data:/var/lib/apinto
- /var/lib/apipark/apinto/log:/var/log/apinto
- ${PWD}/config.yml:/etc/apinto/config.yml
networks:
- apipark
networks:
apipark:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.100.0.0/24