개요

Wargame 중 heap 취약점이라던가 패키지 관련 dependency때문에 특정 버전에서 실행해야 하는 경우가 있다.

이런 경우 VM보다 docker로 관리하는 편이 편하다.

특히 Ubuntu 16.04 와 18.04 같은 경우는 python, ruby version 별로 설치안되는 패키지가 많아서 가능한 버전으로 컴파일 했다.

선호에 따른 세팅은 아래 Dockerfile을 추가/수정 하면 된다.

Docker image 생성

다음 명령으로 버전 별 빌드가 가능하다.

mkdir wargame
cd wargame
curl -sL https://gist.githubusercontent.com/zshchun/944978bea4e6b7a70411f79c8c2d9509/raw/2cc91a5fb51e11514a3e5bcb5479b97741e33355/Dockerfile.wargame -o Dockerfile.wargame

docker build --build-arg OSVER=22.04 --build-arg TZ=Asia/Seoul --build-arg MIRROR=kr.archive.ubuntu.com -t wargame22.04 - < Dockerfile.wargame
docker build --build-arg OSVER=20.04 --build-arg TZ=Asia/Seoul --build-arg MIRROR=kr.archive.ubuntu.com -t wargame20.04 - < Dockerfile.wargame
docker build --build-arg OSVER=18.04 --build-arg TZ=Asia/Seoul --build-arg MIRROR=kr.archive.ubuntu.com -t wargame18.04 - < Dockerfile.wargame
docker build --build-arg OSVER=16.04 --build-arg TZ=Asia/Seoul --build-arg MIRROR=kr.archive.ubuntu.com -t wargame16.04 - < Dockerfile.wargame

Ubuntu 22.04, 20.04, 18.04, 16.04 이미지들을 모두 생성하려면 시간이 걸리기 때문에 필요한 버전만 빌드하면 된다.

Argument 의 내용은 다음과 같다.

  • TZ : timezone
  • MIRROR : ubuntu apt mirror 서버
  • OSVER : ubuntu version

Docker image 실행

실행은 docker-run 커맨드로 가능하다.

docker run -it --rm wargame22.04