version: "3.8" services: shulker: build: context: . dockerfile: docker/shulker/Dockerfile container_name: shulker restart: unless-stopped environment: # Provide these via environment or .env file - DISCORD_TOKEN=${DISCORD_TOKEN} - DISCORD_CHANNEL_ID=${DISCORD_CHANNEL_ID} - WEBHOOK_URL=${WEBHOOK_URL} - SERVER_NAME=${SERVER_NAME:-Shulker} - SERVER_IMAGE=${SERVER_IMAGE} - DISCORD_MESSAGE_TEMPLATE=${DISCORD_MESSAGE_TEMPLATE} - DEBUG=${DEBUG} - ALLOW_USER_MENTIONS=${ALLOW_USER_MENTIONS} - ALLOW_HERE_EVERYONE_MENTIONS=${ALLOW_HERE_EVERYONE_MENTIONS} - MINECRAFT_SERVER_RCON_IP=${MINECRAFT_SERVER_RCON_IP} - MINECRAFT_SERVER_RCON_PORT=${MINECRAFT_SERVER_RCON_PORT} - MINECRAFT_SERVER_RCON_PASSWORD=${MINECRAFT_SERVER_RCON_PASSWORD} - MINECRAFT_TELLRAW_DOESNT_EXIST=${MINECRAFT_TELLRAW_DOESNT_EXIST} - MINECRAFT_TELLRAW_TEMPLATE=${MINECRAFT_TELLRAW_TEMPLATE} - MINECRAFT_TELLRAW_DOESNT_EXIST_SAY_TEMPLATE=${MINECRAFT_TELLRAW_DOESNT_EXIST_SAY_TEMPLATE} # Set to false if using remote hook mode - IS_LOCAL_FILE=${IS_LOCAL_FILE:-true} # Optionally override the log path inside the container - LOCAL_FILE_PATH_OVERRIDE=${LOCAL_FILE_PATH_OVERRIDE} volumes: # Persist config.json in a named volume - shulker_data:/data # Map your host/server Minecraft logs into the container - ${MC_LOGS_DIR:-./data/logs}:/minecraft/logs:ro ports: - "8000:8000" mc: image: itzg/minecraft-server tty: true stdin_open: true ports: - "25565:25565" environment: EULA: "TRUE" ENABLE_RCON: "true" RCON_PASSWORD: ${MINECRAFT_SERVER_RCON_PASSWORD} RCON_PORT: ${MINECRAFT_SERVER_RCON_PORT} # Ensure env values are written into server.properties on each start OVERRIDE_SERVER_PROPERTIES: "true" volumes: # attach the relative directory 'data' to the container's /data path - ./data:/data volumes: shulker_data: driver: local