네, syslog 드라이버가 문제네요! Podman에서 syslog를 대체할 수 있는 안전한 드라이버들이 있습니다.
# Podman이 지원하는 로그 드라이버 확인
podman info | grep -A 20 "Log Drivers"
# 또는 직접 테스트
podman run --log-driver=json-file --rm hello-world 2>/dev/null && echo "✅ json-file 지원"
podman run --log-driver=journald --rm hello-world 2>/dev/null && echo "✅ journald 지원"
cd /opt/harbor
# docker-compose.yml에서 syslog를 json-file로 교체
sed -i 's/driver: "syslog"/driver: "json-file"/g' docker-compose.yml
sed -i 's/driver: syslog/driver: json-file/g' docker-compose.yml
# syslog 관련 옵션들 제거
sed -i '/syslog-address/d' docker-compose.yml
sed -i '/syslog-facility/d' docker-compose.yml
sed -i '/syslog-format/d' docker-compose.yml
# json-file 옵션 추가
sed -i '/driver: "json-file"/a\ options:\n max-size: "200m"\n max-file: "10"' docker-compose.yml
cd /opt/harbor
# syslog를 journald로 교체 (systemd 환경에 최적)
sed -i 's/driver: "syslog"/driver: "journald"/g' docker-compose.yml
sed -i 's/driver: syslog/driver: journald/g' docker-compose.yml
# syslog 관련 옵션들 제거 후 journald 옵션 추가
sed -i '/syslog-/d' docker-compose.yml
sed -i '/driver: "journald"/a\ options:\n tag: "{{.Name}}"' docker-compose.yml
cd /opt/harbor
# 완전한 로그 설정 교체 스크립트
cat > fix_syslog.py << 'EOF'
import re
# docker-compose.yml 읽기
with open('docker-compose.yml', 'r') as f:
content = f.read()
# syslog 로그 설정을 json-file로 교체하는 패턴
syslog_pattern = r'logging:\s*\n\s*driver: ["\']?syslog["\']?\s*\n\s*options:\s*\n(?:\s*syslog-[^:]+:.*\n)*(?:\s*tag:.*\n)?'
json_file_replacement = '''logging:
driver: "json-file"
options:
max-size: "200m"
max-file: "10"
'''
# 교체
content = re.sub(syslog_pattern, json_file_replacement, content, flags=re.MULTILINE)
# 남은 syslog 드라이버들 단순 교체
content = re.sub(r'driver: ["\']?syslog["\']?', 'driver: "json-file"', content)
# syslog 관련 옵션들 제거
content = re.sub(r'\s*syslog-[^:]+:.*\n', '', content)
# 저장
with open('docker-compose.yml', 'w') as f:
f.write(content)
print("✅ syslog를 json-file로 교체했습니다.")
EOF
python3 fix_syslog.py
cd /opt/harbor
# 1. Harbor 중지
sudo -E docker-compose down 2>/dev/null || true
# 2. syslog를 json-file로 간단 교체
sed -i 's/driver: "syslog"/driver: "json-file"/g' docker-compose.yml
sed -i 's/driver: syslog/driver: json-file/g' docker-compose.yml
# 3. syslog 관련 옵션 제거
sed -i '/syslog-address/d' docker-compose.yml
sed -i '/syslog-facility/d' docker-compose.yml
sed -i '/tag: /d' docker-compose.yml
# 4. Harbor 시작
sudo -E docker-compose up -d
# 5. 상태 확인
sudo -E docker-compose ps
logging:
driver: "json-file"
options:
max-size: "200m"
max-file: "10"
docker-compose logs 정상 동작logging:
driver: "journald"
options:
tag: "{{.Name}}"
journalctl로 로그 확인 가능logging:
driver: "none"
cd /opt/harbor
# 1. 수정된 로그 설정 확인
grep -A 5 "logging:" docker-compose.yml
# 2. syslog 관련 설정이 남아있는지 확인
grep -i syslog docker-compose.yml && echo "❌ syslog 설정 남음" || echo "✅ syslog 설정 제거됨"
# 3. Harbor 시작
sudo -E docker-compose up -d
# 4. harbor-portal 컨테이너 확인
sudo -E docker-compose ps | grep portal
# 5. 로그 테스트
sudo -E docker-compose logs harbor-portal | tail -10
RHEL 환경이라면 journald가 가장 적합합니다:
cd /opt/harbor
# journald로 설정 (RHEL 최적화)
sed -i 's/driver: "syslog"/driver: "journald"/g' docker-compose.yml
sed -i '/syslog-/d' docker-compose.yml
# Harbor 시작
sudo -E docker-compose up -d
# journald로 로그 확인
sudo journalctl -u podman -f
가장 안전하고 빠른 방법은 syslog → json-file 교체입니다! 🚀