Post

Docker를 이용한 Jekyll 개발환경 구축

Jekyll 개발환경 구축을 위한 Docker 환경 설정

Motivation

  • 기존에 구축한 개발환경 구축방법 에서 rvm이나 ruby를 설치하는 과정에 난점이 있음
  • 격리 성능이 높은 Docker 컨테이너를 이용해서 개발환경을 구축

History

Jekyll container를 이용한 구성 (실패)

  • Jekyll 공식 container가 있어, 해당 container 기반으로 구축시도
  • 하지만, rubybundle의 버전이 안정적이지 못하여 런타임 오류가 계속 발생

Ruby container를 이용한 컨테이너 구성

  • ruby 공식 container가 있으며, v3.2.2가 안정적이라는 평가가 있음
  • 최소한의 라이브러리로 구축

참고 링크 내용을 참고하면 아래와 같음

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Ruby 3.2.2 공식 컨테이너 사용
FROM ruby:3.2.2

# 기초 라이브러리 설치
RUN apt-get update -qq && apt-get install -y build-essential nodejs

# 개발환경 복사
WORKDIR /workspace
COPY . /workspace

# bundle, jekyll 설치
RUN gem install bundler jekyll

# (참고) safe directory 추가 (Ubuntu 24.04 설정)
RUN git config --global --add safe.directory /workspace
RUN bundle install

# Jekyll 기본포트 설정
EXPOSE 4000

# Localhost 실행 설정
CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0"]

사용방법

Dockerfile 위치

Dockerfile은 프로젝트의 루트 폴더에 위치 (참고 링크 확인)

Build

Dockerfile 있는 위치에서 아래 명령어를 실행

1
2
# `my_space`라는 이름의 이미지를 빌드
docker build --no-cache -t my_space .

Run

Dockerfile 있는 위치에서 아래 명령어를 실행

조금 복잡하지만 내용은 아래와 같음

  • 포트 바인딩: 4000
  • 볼륨마운트: pwdDocker의 workspace (파일 수정 시 컨테이너 내용도 수정됨)
  • 실행 완료 후 컨테이너 제거
1
docker run -it --rm -p 4000:4000 -v $(pwd):/workspace my_space

이를 실행하면 localhost:4000 에서 빌드된 사이트를 확인가능

This post is licensed under CC BY 4.0 by the author.