Podman_compose_BigData/install.sh.gpu
2025-10-16 21:15:12 +09:00

53 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# 스크립트 실행 중 오류가 발생하면 즉시 중단
set -e
echo "--- [1/6] 기존 컨테이너 및 systemd 서비스를 정리합니다... ---"
# podman-compose로 실행된 모든 컨테이너 중지 및 삭제
sudo podman-compose down || true
# systemd 서비스 중지 및 비활성화
sudo systemctl stop bigdata.service || true
sudo systemctl disable bigdata.service || true
# 기존 서비스 파일 삭제
sudo rm -f /etc/systemd/system/bigdata.service
# systemd 리로드
sudo systemctl daemon-reload
echo "--- [2/6] 컨테이너 이미지를 빌드합니다... ---"
sudo podman-compose build
echo "--- [3/6] systemd 서비스 생성을 위해 base-server 컨테이너를 생성합니다... ---"
# 이전에 실패했던 컨테이너가 남아있을 수 있으므로 강제 삭제 후 생성
sudo podman rm -f bigdata_server || true
sudo podman create \
--name bigdata_server \
--network=host \
--runtime=nvidia \
-e NVIDIA_VISIBLE_DEVICES=all \
-e TZ=Asia/Seoul \
-e DB_HOST=localhost \
-e DB_PORT=15433 \
-e DB_USER=spacs \
-e DB_PASSWORD=scaps \
-e DB_NAME=spacs \
-v $(pwd)/ssdoctors:/home/ssdoctors:Z \
-v $(pwd)/data/workspace:/workspace:Z \
localhost/bigdata-server_base-server:latest
echo "--- [4/6] base-server를 위한 systemd 서비스 파일을 생성 및 등록합니다... ---"
sudo podman generate systemd --new --files --name bigdata_server
sudo mv container-bigdata_server.service /etc/systemd/system/bigdata.service
sudo systemctl daemon-reload
echo "--- [5/6] postgres 컨테이너와 base-server 서비스를 시작합니다... ---"
# postgres는 podman-compose로 실행
sudo podman-compose up -d postgres
# base-server는 systemd로 실행 및 부팅 시 자동 시작 활성화
sudo systemctl enable --now bigdata.service
echo "--- [6/6] 설치 완료! 서비스 상태를 확인합니다. ---"
sleep 5 # 서비스가 시작될 시간을 잠시 기다립니다.
sudo podman-compose ps
sudo systemctl status bigdata.service