Spring Petclinic 컨테이너화
Spring Petclinic 애플리케이션 빌드
git clone https://github.com/spring-projects/spring-petclinic.git
cd spring-petclinic
./mvnw package
java -jar target/*.jar
- 레포지토리 클론
spring-petclinic 폴더로 이동
- 애플리케이션 빌드
- Maven Wrapper 스크립트 실행
- 소스 코드 컴파일 후 패키지 생성
- 결과 : target 폴더 내 jar 파일 생성
- 빌드를 통해 생성된 target 폴더 내 jar 파일 실행
- 웹 브라우저에서 <서버아이피>:8080으로 접근하여 애플리케이션 확인 가능
컨테이너 이미지 빌드
podman build -t spring-petclinic .
-t : 이미지에 태그를 지정한다.
. : 현재 디렉토리를 빌드 컨텍스트로 사용한다는 뜻으로, Dockerfile이 현재 디렉토리에 있어야 한다.
로컬 저장소에 푸시
podman tag <IMAGE_ID> localhost:5000/tang/pet-clinic:v1
podman images
podman push localhost:5000/tang/pet-clinic:v1
skopeo list-tags docker://localhost:5000/tang/pet-clinic
- 기존 이미지에 새 태그를 추가한다. 위 코드에서는
localhost:5000/tang/pet-clinic:v1이 태그가 된다.
- 이미지 목록을 확인한다.
- 이미지를 레지스트리로 업로드 한다.
- 위 코드에서는
localhost:5000에 푸시한다.
- 레지스트리에 저장된 이미지의 태그를 확인한다.
list-tags : 지정된 컨테이너 이미지의 모든 태그를 나열하는 명령어
이미지 실행 및 애플리케이션 배포
podman run -d --rm --name pet-clinic-v1 -p9000:8080 localhost:5000/tang/pet-clinic:v1
PHP 애플리케이션 컨테이너화
Containerfile-php 파일 작성
vi Containerfile-php
FROM quay.io/startx/php:latest
COPY ip.php /app
ip.php 파일 작성
vi ip.php
<?php
$ip_server = $_SERVER['SERVER_ADDR'];
$hostname_server = gethostname();
echo "this PHP APP version is v1";
echo $ip_server;
echo $hostname_server;
?>
이미지 빌드
podman build -f Containerfile-php -t localhost:5000/tang/php-app:v1
buildah bud -f Containerfile-php -t localhost:5000/tang/php-app:v1
buildah push localhost:5000/tang/php-app:v1
이미지 실행
podman run -d --rm --name php-app-v1 -P localhost:5000/tang/php-app:v1
podman port php-app-v1
애플리케이션 확인
curl localhost:<PORT>/ip.php