계기

깃헙 블로그를 작성하기 위해서는 로컬 pc 에서 ruby 를 설치하고 jekyll 환경 구성을 해야 합니다.
오늘 포스팅을 작성할려고 했으나, windows 를 다시 깔아버려서 세팅하기가 너무 귀찮더라구요…
이번 기회에 저처럼 자주 이러저리 옮겨다니는 사람들을 위해 이번 내용을 작성하게 되었습니다.

우선 저는 windows 10 에 wsl2 와 docker 를 설치하여 사용하였습니다.

wsl2 사용하기

wsl2 란?

지난 5월 윈도우 Windows 10의 대규모 업데이트가 있었습니다. 이번 업데이트는 2019년 11월 이후 첫 대규모 업데이트로 사용자를 위한 다양한 기능이 추가되었을 뿐만 아니라,
Microsoft 에서 미리 예고한 대로 WSL2 (Windows Subsystem for Linux 2) 를 포함하고 있습니다.

간략히 이야기 드리자면, 윈도우즈에서 경량 가상화 기술을 사용해 리눅스를 구동할 수 있도록 도와주는 기능입니다.

WSL 2 를 설치하려면 먼저 Windows 10 2004 를 업데이트해야 합니다.
현재 설치여부는 Windows Key + R 을 눌러서 실행창에 winver 를 넣고 버전을 확인해 보면 됩니다.

wsl2 활성화 하기

2004 업데이트를 설치했다면 PowerShell 을 관리자로 열고 다음 명령을 실행해서 WSL 을 활성화해줍니다.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

설치 완료를 위해서 재부팅을 해줍니다.

wsl2 기본 버젼으로 설정

새 Linux 배포를 설치할 때 Powershell에서 다음 명령을 실행하여 WSL 2를 기본 버전으로 설정합니다.
똑같이 파워쉘을 띄워서 아래 명령어를 입력해줍시다.

wsl --set-default-version 2

linux 배포판 선택하기

각종 배포판을 지원하긴 하지만, 무난한 Ubuntu 18.04 LTS를 설치 해봅니다.
(다른 배포판들은 여기에서 확인 가능합니다.)

microsoft store 에서 ubuntu 를 검색해서 설치합니다.

배포판 실행하기

설치한 배포판을 실행하면 설치하는데 시간이 조금 소요됩니다.

아래 명령어를 이용해서 wsl 버젼을 확인합니다.

PS C:\Users\ecst> wsl --list --verbose
  NAME                   STATE           VERSION
* Ubuntu-18.04           Running         2

docker 사용하기

(https://docs.docker.com/docker-for-windows/wsl-tech-preview/)

위의 링크를 참고하여 윈도우용 docker desktop을 설치 후
General에서 Enable the experimental WSL 2 based engine를 체크하여주고
Resources > WSL Integration에서 설치한 리눅스 버전을 체크해주시면 됩니다.

jekyll docker 설정하기

docker-compose.yaml 파일을 만들어 봅니다.

version: "3.3"

services:
  blog:
    image: jekyll/jekyll:latest
    command: jekyll serve --force_polling --drafts --livereload --trace
    ports:
      - "4000:4000"
    volumes:
      - ".:/srv/jekyll"

docker-compose는 서비스에 필요한 docker 컨테이너를 한번에 실행해주는 프로그램 입니다.

다음은 작성된 코드의 의미입니다.

  • version : docker-compose의 버전을 의미
  • services : docker-compose는 여러개의 컨테이너를 띄울 수 있음. 하단 블록에 기입
    • blog : 실행할 컨테이너의 이름
      • image : docker 이미지
      • command : 컨테이너가 run 하면 실행할 명령
      • ports : {local_port}:{container_port} , 로컬 4000번 port를 컨테이너의 4000번 포트와 매핑
      • volumes : {local_dir}:{container_dir} , 현재 경로를 컨테이너의 /srv/jekyll 경로에 mount 하겠다는 뜻

이 작성된 코드로 아래 명령어를 내리면 자동으로 container 가 실행됩니다.

docker-compose up

정상적으로 완료가 되면 자동으로 빌드되는 것을 확인할 수 있습니다

추가) vscode 연동

위는 docker dashboard 에서 확인된 container 입니다. vscode 로 열기를 선택하시면 해당 container 에 remote wsl 로 접속을 확인할 수 있습니다!

q_lazzarus's profile image

q_lazzarus

2020-07-15 16:08

q_lazzarus 님이 작성하신 글 더 보기