대상: 문서 처리 시스템 기반 대기업 서비스
환경: 내부망(Air-gapped), Docker Compose 기반 운영
docker-compose.yml에 mem_limit, memswap_limit 추가
OCR, NLP 서비스별 메모리 사용량 고려하여 8~16GiB 수준으로 설정
mem_limit: 12g
memswap_limit: 12g
무한 fork 등으로 인한 시스템 리소스 고갈 방지
컨테이너당 프로세스 수 제한 (예: pids_limit: 300)
pids_limit: 300
컨테이너의 루트 파일 시스템을 읽기 전용으로 설정
/tmp, /app, /run은 tmpfs 또는 volume로 쓰기 가능하게 분리
read_only: true
tmpfs:
- /tmp
- /run
- /app
UID 2001, GID 2001로 비루트 사용자 daiadm, 그룹 daiap 수동 생성
기존 이미지에 useradd, groupadd 명령이 없어 파일 docker cp 로 불러와서 /etc/passwd, /etc/group 직접 수정
echo 'daiadm:x:2001:2001::/home/daiadm:/sbin/nologin' >> /etc/passwd
echo 'daiap:x:2001:' >> /etc/group
user: "2001:2001"
최소 syscall만 허용하는 seccomp-profile.json 작성
docker-compose.yml에 security_opt로 적용
security_opt:
- seccomp=./seccomp-profile.json
- no-new-privileges:true