docker, docker-compose를 이용해서 마인크래프트 서버만들기를 소개합니다. docker, docker-compose가 아닌 서버에서 직접 설치하는 방식은 digitalocean에서 잘 소개되어있습니다.
https://www.digitalocean.com/community/tutorials/how-to-create-a-minecraft-server-on-ubuntu-22-04
사전지식
마인크래프트 서버는 http통신이 아닙니다. 도메인을 간단하게 만들고 싶었지만 리버스프록시를 사용할 수 없군요.
마인크래프 서버 띄우기
version: "3.8"
services:
mc:
image: itzg/minecraft-server
tty: true
stdin_open: true
ports:
- "25565:25565"
environment:
EULA: "TRUE"
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:/data
Code language: PHP (php)
위 설정으로 서버를 띄우고 25565 포트로 들어가면 아주 간단하게 마인크래프트 서버에 접속할 수 있습니다.
itzg/minecraft-server 모드 설정하기
여러개의 모드 설정을해봤지만 TYPE: FORGE
를 이용한 모드 설치가 제일 손쉬웠습니다.
FORGE로 하기위해서 https://console.curseforge.com/ 에 가입하고 API 키를 만들어줍니다. CurseForge에서 로그인하고 API를 받는게 아닙니다
version: "3.8"
services:
mc:
image: itzg/minecraft-server
tty: true
stdin_open: true
ports:
- "25565:25565"
env_file:
- .env
environment:
UID: 0
GID: 0
EULA: "TRUE"
VERSION: 1.19.4
# General options
MEMORY: 7G
# Server
TYPE: FORGE
MODE: "creative"
# CurseForge
CF_API_KEY: ${CF_API_KEY}
MODS_FILE: /extras/mods.txt
volumes:
- ./data:/data
- ./mods.txt:/extras/mods.txt:ro
Code language: PHP (php)
REF – https://github.com/itzg/docker-minecraft-server/blob/master/examples/mods-file/docker-compose.yml
🤔 모드 다운로드받는 url은 어디서 가져오지?
https://mediafilez.forgecdn.net/files/4718/584/cgm-forge-1.19.4-1.3.7.jar
https://mediafilez.forgecdn.net/files/4718/249/framework-forge-1.19.4-0.6.16.jar
Code language: JavaScript (javascript)
mod.txt
에 들어가는 위 주소는 어떻게 얻는가? 여기서 정말 삽질을 많이했다 😇
CurseForge에서 모드 파일을 다운받을때 브라우저 개발자 도구에서 네트워크 탭에서 다운받는 링크를 가져왔다.
위 주소를 mod.txt
파일에 추가해서 마인크래프트 서버를 다시 실행하면 모드가 적용되는 것을 볼 수 있다.