
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

이전 포스트에서 작성했던 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

위 내용을 세팅한 이후
dev.example.comgit.example.comregistry.example.com어디로 들어가도 아래와 같은 gogs install 화면이 나와야 한다.
내용 세팅은 본인에 맞게 진행한다. 단, 도메인과 애플리케이션 URL은 접근이 가능한 경로로 설정해야한다.



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

저장소를 만든 이후의 모습

이제 gogs에 해당 저장소를 clone 해왔으니, dns 서버에 clone을 해보자. dns 서버에는 github 저장소가 아닌 gogs 저장소를 가져올 것이다.
git clone http://git.example.com/gogs/pet-clinic.git
주소는 본인이 작성한대로 가져오면 된다. (저장소 주소 복사 가능)

dnf install git
dnf install maven-openjdk11.noarch
dnf install container-tools
mvn clean package


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

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

