GitLab Pages 하위도메인을 동적으로 처리하기 위해 dnsmasq 사용

GitLab Pages 사이트를 로컬에서 각 사이트를 /etc/hosts에 구성하지 않고 테스트하려면 dnsmasq를 사용할 수 있습니다.

macOS에서 dnsmasq 사용

macOS에서 dnsmasq를 사용하려면:

  1. dnsmasq 설치:
brew install dnsmasq
  1. *.test 도메인 조회 설정:
# 구성 디렉토리가 존재하는지 확인
mkdir -p $(brew --prefix)/etc/

# `127.0.0.1` 조회에 `*.test` 추가
echo 'address=/.test/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.conf

# `dnsmasq` 시작
sudo brew services start dnsmasq
  1. DNS 리졸버 생성:
# 리졸버 디렉토리가 존재하는지 확인
sudo mkdir -p /etc/resolver

# `localhost` 주소를 `.test` 도메인의 리졸버로 추가
echo "nameserver 127.0.0.1" | sudo tee /etc/resolver/test

이제 동적 도메인으로 로컬에서 GitLab Pages 사이트를 생성할 수 있습니다. 만약 GitLab Pages를 구성하고 root/html 프로젝트를 생성하면 해당 프로젝트는 http://root.gdk.pages.test:3010/html를 통해 접근할 수 있습니다.

문제 해결

GitLab Runner의 경우 /etc/hosts에서 gdk.test를 정의해야 합니다. 로컬에서 GitLab Runner를 사용하는 경우 /etc/hosts를 구성해야 합니다:

# `/etc/hosts`에 GDK 구성 추가
cat <<-EOF | sudo tee -a /etc/hosts

## GDK
127.0.0.1  gdk.test
::1        gdk.test
# ----------------------------
EOF