애플리케이션 컨테이너화

띠로리·2024년 7월 23일

Spring Petclinic 컨테이너화

Spring Petclinic 애플리케이션 빌드

git clone https://github.com/spring-projects/spring-petclinic.git

cd spring-petclinic

./mvnw package

java -jar target/*.jar
  1. 레포지토리 클론
  2. spring-petclinic 폴더로 이동
  3. 애플리케이션 빌드
    • Maven Wrapper 스크립트 실행
    • 소스 코드 컴파일 후 패키지 생성
    • 결과 : target 폴더 내 jar 파일 생성
  4. 빌드를 통해 생성된 target 폴더 내 jar 파일 실행
  5. 웹 브라우저에서 <서버아이피>: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
  1. 기존 이미지에 새 태그를 추가한다. 위 코드에서는 localhost:5000/tang/pet-clinic:v1이 태그가 된다.
  2. 이미지 목록을 확인한다.
  3. 이미지를 레지스트리로 업로드 한다.
    • 위 코드에서는 localhost:5000에 푸시한다.
  4. 레지스트리에 저장된 이미지의 태그를 확인한다.
    • 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
profile
차곡 차곡 기록 쌓기

0개의 댓글