Files

61 lines
2.8 KiB
JSON

{
"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":{}}
}