본문 바로가기
일반
2021.02.23 09:43

MKDocs (3) - Docker로 실행하기

다물칸 주소복사
조회 수 44 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
구분 팁&트릭
출처 내가작성

목차

MKDocs (1) - 소개 및 설정방법

MKDocs (2) - Docker로 Build하기

MKDocs (3) - Docker로 실행하기

 

실행하기 지만, 필자가 사용하고 있는 Docker 빌드 쉘 스크립트와 실행 쉘 스크립트를 소개하겠다.

 

시나리오는 다음과 같다. 

1) Gitlab 또는 Github의 MKDocs 소스를 내려받는다. (이미 Build가 되어 있어야 함)

2) Dockerfile을 빌드한다. (Build할 때 MKDocs의 빌드된 폴더를 컨테이너에 복사)

3) 도커 이미지를 기반으로 실행

 

다음은 Build Shell Script 다. 필자는 CentOS7(Linux)를 서버로 사용하기 때문에 감안해서 보면 된다.

 

mkdir -p ${PWD}/dockerfiles/src
export SOURCE_PATH=${PWD}/dockerfiles/src
export IMAGE_NAME=enjoydevdocs
export SOURCE_VER=1.0.0

export SOURCE_GITPATH=[[깃랩 또는 깃헙 주소를 입력]]

git config --global user.name "[[깃랩 또는 깃험 ID]]"
git config --global user.email "[[깃랩 또는 깃헙 이메일]]"
git config --global credential.helper 'cache --timeout 2592000'

function gitPullSrc()
{
  cwd=${PWD}

  if [ -d ${SOURCE_PATH} ]; then
    echo " ++ Deleting.. Source Folder"
    echo "    -> ${SOURCE_PATH}"
    rm -rf ${SOURCE_PATH}
  fi

  git init $SOURCE_PATH
  git config credential.helper store
  cd $SOURCE_PATH
  git remote add -f origin $SOURCE_GITPATH
  git pull origin master
  make html

  cd $cwd
}

function buildDocker() {
  docker rmi -f $IMAGE_NAME:$SOURCE_VER
  docker build . --tag $IMAGE_NAME:$SOURCE_VER
}

echo " ++ Build Starting..."
gitPullSrc
buildDocker

echo " ++ End build."

대충 보면 git에서 소스 받아서(기존 폴더있으면 삭제) 빌드하는 루틴으로 되어 있다.

 

다음은 실행 스크립트

docker rm -f enjoydevdocs
docker run -d --name enjoydevdocs --net bridge --restart=always \
  -v /usr/share/zoneinfo/Asia/Seoul:/etc/localtime:ro \
 -p 30080:8000 \
 enjoydevdocs:1.0.0

기존 컨테이너를 제거하고 실행한다. 동적으로 파일이 바뀌는 일이 없는 컨테이너이기 때문에 재시작을 하더라도 자료가 유실되는 일은 없다. 

포트는 왼쪽이 외부(컨테이너 입장에서 외부; 호스트)포트, 오른쪽이 내부(컨테이너 입장에서 내부; 컨테이너) 포트이다.

컨테이너 내부에서는 8000포트를 사용하고 그것을 호스트의 30080 포트로 포트 포워딩을 하겠다는 의미이다. 

 

즉, 실행 후, 호스트의 아이피에 30080으로 연결하면 된다. 호스트 아이피가 192.168.0.100 이라면 

http://192.168.0.100:30080 으로 접근하면 된다.