53 lines
2.0 KiB
Bash
Executable File
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
|