갑자기 마인크래프트?
Docker에 관해 공부를 하다 예전에 즐겨하던 게임인 마인크래프트를 Docker를 이용해서 서버를 운영하고 싶다는 생각이 들었다.
기존에 마인크래프트 서버 운영을 했을 때 기본적인 마인크래프트 서버를 사용하여 구동을 하였지만 이번에는 모드를 적용할 수 있는 서버를 구동하고 싶어 Forge라는 서버와 Docker를 이용해 구동해 보기로 하였다.
Dockerfile 구성
Dockerfile의 기본이미지로 요즘 많이 사용하는 ubuntu를 선택하였다.
저장소 업데이트, 문서를 편집할 수 있게 하는 vim, java, 다운로드를 가능하게 하는 wget을 설치하도록 구성하였고 /home/server폴더를 생성하고 기본 디렉토리로 설정하였다.
forge 서버를 다운로드하고 java를 사용하여 서버를 설치하였다.
그리고 컨테이너가 생성될 때마다 run.sh 스크립트를 실행하도록 구성하였다.
from ubuntu
RUN apt-get update
RUN apt-get install vim -y
RUN apt-get install openjdk-17-jdk -y
RUN apt-get install wget -y
RUN mkdir /home/server
WORKDIR /home/server
RUN wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.20.2-48.0.13/forge-1.20.2-48.0.13-installer.jar
RUN java -jar forge-1.20.2-48.0.13-installer.jar --installServer
ENTRYPOINT ["./run.sh"]
docker-compose.yaml 파일 구성
docker-compose.yaml 파일은 구성한 Dockerfile을 빌드하고 호스트의 port 25565와 컨테이너의 포트 25565로 연결하였다. 그리고 docker volume을 이용해 Dockerfile의 정의해 두었던 /home/server와 볼륨 바인드를 하도록 하였다.
version : "3"
services:
server:
container_name: "minecraft"
build:
context: .
ports:
- "25565:25565"
restart: unless-stopped
volumes:
- server:/home/server
volumes:
server:
결과
서버 구동이 잘되었고 localhost:25565번으로 접속한 결과 마인크래프트도 잘 접속할 수 있었다.
참고사이트
https://files.minecraftforge.net/net/minecraftforge/forge/
Minecraft Forge downloads
Downloads for Minecraft Forge for Minecraft 1.20.1 Recommended: 47.2.0 Latest: 47.2.1
files.minecraftforge.net