services: minecraft: image: openjdk:17 container_name: minecraft-server working_dir: /mc-server environment: - MAX_MEMORY=${MAX_MEMORY} - MIN_MEMORY=${MIN_MEMORY} - TZ=Asia/Shanghai volumes: - ${MC_DIR}:/mc-server command: > java -Xms${MAX_MEMORY} -Xmx${MAX_MEMORY} -XX:MaxRAM=${MAX_MEMORY} -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar ${JAR_FILE} nogui ports: - "25565:25565" stdin_open: true tty: true restart: always mem_limit: 10G memswap_limit: 10G # 禁止使用 swap