Gogs/Docker Registry 설정 및 배포 실습

띠로리·2024년 7월 23일

1. Pod와 Container 추가하기

podman pod create --name dev-infra --publish 5000:5000 --publish 80:3000

podman run -d --pod dev-infra --name gogs docker.io/gogs/gogs:latest
podman run -d --pod dev-infra --name docker-registry docker.io/library/registry:latest

2. zone 파일 수정

이전 포스트에서 작성했던 zone 파일을 수정하자.

vi /var/named/example.com.zone
$TTL    7200
example.com.            IN      SOA     dns1.example.com. admin.example.com. (
                                        2024071901      ; Serial
                                        7200            ; Refresh
                                        3600            ; Retry
                                        604800          ; Expire
                                        7200)           ; NegativeCacheTTL

                        IN      NS      dns1.example.com.

example.com.            IN      A       10.10.0.20
www                     IN      CNAME   example.com.
dns1                    IN      A       10.10.0.10
node1					IN		A		192.168.10.20
node2					IN		A		192.168.10.30
dev						IN		A		10.10.0.10
git						IN		A		10.10.0.10
registry				IN		A		10.10.0.10

3. gogs install

위 내용을 세팅한 이후

  • dev.example.com
  • git.example.com
  • registry.example.com

어디로 들어가도 아래와 같은 gogs install 화면이 나와야 한다.

내용 세팅은 본인에 맞게 진행한다. 단, 도메인과 애플리케이션 URL은 접근이 가능한 경로로 설정해야한다.



4. github 저장소 clone

gogs install이 끝났다면 프로필 왼쪽의 플러스를 눌러 저장소를 마이그레이션 한다. 웹 상에서 확인할 수 있는 (주로 웹 서비스) 서비스라면 크게 상관 없다. 다만 오늘 실습은 정말 간단하게 진행되는 실습이기 때문에 복잡한 서비스 대신 스프링에서 제공하는 petclinic 저장소를 추천한다.

사진을 클릭하면 해당 저장소로 이동합니다.

  • pet-clinic clone(마이그레이션)

  • 저장소를 만든 이후의 모습

이제 gogs에 해당 저장소를 clone 해왔으니, dns 서버에 clone을 해보자. dns 서버에는 github 저장소가 아닌 gogs 저장소를 가져올 것이다.

git clone http://git.example.com/gogs/pet-clinic.git

주소는 본인이 작성한대로 가져오면 된다. (저장소 주소 복사 가능)

5. 필요한 툴 설치

dnf install git
dnf install maven-openjdk11.noarch
dnf install container-tools
  • git, openjdk11, container-tools 설치

6. 파일 컴파일 및 빌드

mvn clean package

이미지 빌드

  • clone한 파일을 컴파일해서 생긴 Dockerfile을 사용해서 컨테이너 이미지를 빌드한다.
buildah bud -f Dockerfile -t dev.example.com:5000/yeong/spring-petclinic:v1

빌드된 이미지를 사용해서 컨테이너를 실행하고, 페이지에 접속해서 확인한다.

podman run -d -p 8088:8080 --rm --name petclinic dev.example.com:5000/tang/spring-petclinic:v1

이미지 push 및 kube generate

buildah push --tls-verify=false dev.example.com:5000/yeong/spring-petclinic:v1
skopeo list-tags --tls-verify=false docker://dev.example.com:5000/yeong/spring-petclinic

profile
차곡 차곡 기록 쌓기

0개의 댓글