{ "name": "syly2-uat", "services": { "db": { "image": "syly2-uat-mysql:5.7.44-20261029", "pull_policy": "never", "restart": "unless-stopped", "user": "1000:1000", "read_only": true, "cap_drop": ["ALL"], "security_opt": ["no-new-privileges:true"], "mem_limit": "1g", "cpus": 1.5, "pids_limit": 200, "volumes": ["./runtime/mysql-data:/var/lib/mysql", "./runtime/mysql.cnf:/etc/mysql-uat.cnf:ro", "./secrets/mysql-client.cnf:/run/secrets/mysql-client.cnf:ro"], "tmpfs": ["/tmp:uid=1000,gid=1000,mode=1777,size=128m"], "networks": ["backend"], "healthcheck": {"test": ["CMD", "/opt/mysql/bin/mysqladmin", "--defaults-extra-file=/run/secrets/mysql-client.cnf", "ping", "--silent"], "interval": "10s", "timeout": "5s", "retries": 12}, "logging": {"driver":"json-file", "options":{"max-size":"10m","max-file":"3"}} }, "app": { "image": "syly2-uat-app:tomcat9.0.123-java8-20261029", "pull_policy": "never", "restart": "unless-stopped", "user": "1000:1000", "read_only": true, "cap_drop": ["ALL"], "security_opt": ["no-new-privileges:true"], "mem_limit": "2g", "cpus": 2, "pids_limit": 300, "environment": {"CATALINA_OPTS":"-Xms256m -Xmx1280m -XX:MaxMetaspaceSize=384m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai"}, "volumes": ["./runtime/webapp:/opt/tomcat/webapps/syly:ro", "./runtime/server.xml:/opt/tomcat/conf/server.xml:ro", "./runtime/tomcat-work:/opt/tomcat/work", "./runtime/tomcat-logs:/opt/tomcat/logs"], "tmpfs": ["/tmp:uid=1000,gid=1000,mode=1777,size=128m", "/opt/tomcat/temp:uid=1000,gid=1000,mode=1777,size=128m", "/opt/tomcat/conf/Catalina:uid=1000,gid=1000,mode=0755,size=8m"], "networks": ["backend"], "depends_on": {"db":{"condition":"service_healthy"}}, "logging": {"driver":"json-file", "options":{"max-size":"10m","max-file":"3"}} }, "web": { "image": "docker.jianmuhub.com/library/nginx@sha256:04ac43f568bd51a2e8f37fa0a185ff8f9f4d55c3aa1f1af5008f094d026f950d", "pull_policy": "never", "entrypoint": ["nginx", "-g", "daemon off;"], "user": "1000:1000", "restart": "unless-stopped", "read_only": true, "cap_drop": ["ALL"], "security_opt": ["no-new-privileges:true"], "mem_limit": "128m", "cpus": 0.5, "pids_limit": 50, "ports": ["192.168.68.223:8445:8445"], "volumes": ["./nginx.conf:/etc/nginx/nginx.conf:ro", "./secrets/tls:/etc/nginx/tls:ro"], "tmpfs": ["/var/cache/nginx:uid=1000,gid=1000", "/var/run:uid=1000,gid=1000", "/tmp:uid=1000,gid=1000"], "networks": ["backend", "ingress"], "depends_on": ["app"], "logging": {"driver":"json-file", "options":{"max-size":"5m","max-file":"2"}} } }, "networks": {"backend":{"internal":true}, "ingress":{}} }