- 00-server-setup.sh: JDK8(Temurin)·Tomcat9·systemd·nginx·act_runner 구축 (멱등)
- arko-dev-deploy.sh: WAR 검증→백업→ROOT 재전개→환경설정 주입→기동→헬스체크→실패 시 롤백
- build-and-upload.sh: 개발자 PC에서 JDK8 빌드 후 WAR 업로드 (서버 자원 보호)
- deploy-dev.yml: master push 시 자동 배포, 수동 재배포·롤백 지원
서버가 2코어/메모리 여유 1G에 40여 개 서비스가 동거하는 환경이라
Maven 빌드는 서버에서 돌리지 않고 개발자 PC에서 수행한다.
JSP가 리소스를 컨텍스트 경로 없이 하드코딩해 ROOT 전개만 가능하며,
globals-{dev,live}.properties는 .gitignore 대상이라 서버 config/에 두고 배포 시 주입한다.
40 lines
1.5 KiB
Desktop File
40 lines
1.5 KiB
Desktop File
# arko_renual 개발서버 Tomcat 서비스
|
|
# 설치 위치: /etc/systemd/system/arko-dev.service
|
|
#
|
|
# 이 서버(zio-server)의 기존 서비스들과 같은 방식(systemd 직접 관리)을 따른다.
|
|
# 메모리 여유가 1.3G 수준이라 힙을 768m로 제한한다 — 부족하면 서버 전체가 스왑/OOM으로 흔들린다.
|
|
[Unit]
|
|
Description=arko_renual DEV (Tomcat 9, csv.zioinfo.co.kr, :8088)
|
|
After=network.target mariadb.service
|
|
Wants=mariadb.service
|
|
|
|
[Service]
|
|
Type=forking
|
|
|
|
Environment="JAVA_HOME=/opt/arko-dev/jdk8"
|
|
Environment="CATALINA_HOME=/opt/arko-dev/tomcat"
|
|
Environment="CATALINA_BASE=/opt/arko-dev/tomcat"
|
|
Environment="CATALINA_PID=/opt/arko-dev/tomcat/temp/tomcat.pid"
|
|
# -Xmx768m: 서버 가용 메모리 기준 상한. 늘리려면 free -h 먼저 확인할 것
|
|
# headless: 이미지 처리(썸네일) 시 X11 없는 환경에서 죽지 않도록
|
|
# Asia/Seoul: 로그·배치 시각을 서버 다른 서비스와 맞춘다
|
|
Environment="CATALINA_OPTS=-Xms256m -Xmx768m -XX:MaxMetaspaceSize=256m -Djava.awt.headless=true -Duser.timezone=Asia/Seoul -Dfile.encoding=UTF-8"
|
|
|
|
ExecStart=/opt/arko-dev/tomcat/bin/startup.sh
|
|
ExecStop=/opt/arko-dev/tomcat/bin/shutdown.sh 30 -force
|
|
|
|
# arko는 첫 기동 시 JSP 컴파일로 60~90초가 걸린다
|
|
TimeoutStartSec=300
|
|
TimeoutStopSec=90
|
|
|
|
Restart=on-failure
|
|
RestartSec=15
|
|
|
|
# 배포 스크립트가 webapps/ROOT를 갈아끼우므로 파일 접근 제약은 걸지 않는다
|
|
User=root
|
|
Group=root
|
|
UMask=0027
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|