Docker를 이용한 Jekyll 개발환경 구축
Jekyll 개발환경 구축을 위한 Docker 환경 설정
Motivation
- 기존에 구축한 개발환경 구축방법 에서
rvm이나ruby를 설치하는 과정에 난점이 있음 - 격리 성능이 높은
Docker컨테이너를 이용해서 개발환경을 구축
History
Jekyll container를 이용한 구성 (실패)
Jekyll공식 container가 있어, 해당 container 기반으로 구축시도- 하지만,
ruby나bundle의 버전이 안정적이지 못하여 런타임 오류가 계속 발생
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
- 볼륨마운트:
pwd↔Docker의 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.