순서대로 따라하는 Github Repo 생성부터 GHCR(GitHub Container Registry) 등록까지

이 글은 코드를 GitHub에 올리기만 하면
Docker 이미지가 자동으로 GHCR에 등록되는 흐름
를 직접 만들어보는 따라하기 글이다.


0. 전체 흐름 미리 보기

우리가 만들 구조는 이렇다.

이제 하나씩 따라가 보자.


1️⃣ GitHub에서 앱용 Repository 만들기

먼저 GitHub 에서 컨테이너로 배포할 앱 전용 레포지토리를 만든다.

Repository 생성

  1. GitHub 접속

  2. New repository 클릭

  3. 아래처럼 설정

  • Repository name: my-first-ghcr-app

  • Public (처음엔 공개가 편함)

  • Add a README 체크 ✅

👉 생성 버튼 클릭


2️⃣ 최소한의 앱과 Dockerfile 준비

예시: 아주 간단한 웹앱 구조

Pasted image 20260110151027.png

index.html

<h1>Hello GHCR 👋</h1> <p>This app is running from a container.</p>

Dockerfile

FROM nginx:alpine COPY index.html /usr/share/nginx/html/index.html

💡 지금은 **“컨테이너가 된다”**는 게 핵심이라
앱은 최대한 단순하게 시작한다.

3️⃣ GitHub Actions로 자동 빌드 설정하기

이제 핵심 단계다.
push 하면 자동으로 GHCR에 이미지가 등록되도록 설정한다.

.github/workflows/docker.yml 생성

Pasted image 20260110151959.png

docker.yml

name: Build and Push to GHCR

on:
  push:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Login to GHCR
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and Push
        uses: docker/build-push-action@v5
        with:
          push: true
          tags: ghcr.io/${{ github.actor }}/my-first-ghcr-app:latest

👉 커밋 & 푸시


4️⃣ GHCR에 이미지가 자동 등록되는 순간

푸시가 끝나면:

  1. GitHub → Actions

  2. 워크플로우 실행 확인

  3. 성공하면 🎉

GHCR 확인 경로

  • GitHub 프로필

  • Packages

  • my-first-ghcr-app 패키지 생성됨

이미지 주소는 이렇게 된다:

ghcr.io/깃허브아이디/my-first-ghcr-app:latest

5️⃣ 이 이미지, 어디서든 실행 가능

이제 이 이미지는:

  • 시놀로지 Container Manager

  • 개인 서버

  • VPS

  • 로컬 Docker

어디서든 실행 가능하다.

docker pull ghcr.io/아이디/my-first-ghcr-app:latest docker run -d -p 8080:80 ghcr.io/아이디/my-first-ghcr-app:latest

6️⃣ 왜 이 방식이 좋은가

이 구조의 핵심 장점은 딱 3가지다.

  1. GitHub = 코드 + 이미지의 기준점

  2. 빌드 자동화 (사람 손 안 탐)

  3. 시놀로지 배포와 자연스럽게 연결

“이미지를 어디에 저장할까?”라는 고민이 사라진다.

#GitHub #GHCR #Docker #GitHub Actions, #CI/CD
#Synology #시놀로지 도커 #배포 자동화
#개인 서버 #홈서버