Jekyll

목표

  • github.io를 이용하기 위한 Jekyll환경 구축.
  • githubpage에서 사용하기 위한 ruby2.7 버전을 이용.
  • 테마의 경우 유저마다 다름으로 Jekyll, bundler만 설치

발생한 문제

  • Jekyll 설치 시 에러 발생 및 mkmf.log확인. first_error_log gcc가 없어서 발생하는 문제임을 확인.
    apk add gcc를 이용해 gcc설치.
  • gcc설치 이후 다른 에러가 발생 및 mkmf.log확인. second_error_log libc가 없어서 발생하는 문제임을 확인.
    glibc를 설치하려고 했으나 실패.
    https://www.lesstif.com/docker/alpine-linux-35356819.html 를 참조하여 musl-dev 설치
  • musl-dev설치 이후 다른 에러 발생 third_error_log Make설치
  • Make 설치 이후 다른 에러 발생 fourth_error_log g++이 없어서 발생하는 에러, g++설치

Dockerfile

발생한 문제들을 기반으로 필요한 패키지를 Dockerfile에 기입.

FROM ruby:2.7-alpine

# preinstall for jekyll
RUN apk update \
&&  apk add --no-cache \
	gcc \
	g++ \
	git \
	make \
	musl-dev \
	vim

# install jekyll & bundle
RUN gem install jekyll bundler

EXPOSE	4000

CMD [ "/bin/ash" ]

흥미로운 점

libc와 관련해 모든 linux에서 패키지 관리자로 glibc를 설치 할 수 있을거라고 생각했음.
alpine같은 경우 apk add glibc를 입력하면 패키지를 찾을수 없다는 결과 발생.
glibcmusl-devlibc프론트 코드의 차이에 대해 궁금해짐.