<docker-compose.yml>
services:
diun:
image: crazymax/diun:latest
container_name: diun
command: serve
volumes:
- "./data:/data"
- "./diun.yml:/diun.yml:ro" # diun.yml 파일 만들어 사용
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- TZ=Asia/Seoul
- LOG_LEVEL=info
- LOG_JSON=false
labels:
- "diun.enable=true"
restart: always
<diun.yml>
watch:
workers: 20
schedule: "0 * * * *" #매시간 실행
providers:
docker:
watchStopped: true #정지된 컨테이너도 감시 대상에 포함
notif:
telegram:
token: "<bot-token-value>"
chatIDs:
- <개인ChatID> #개인용
- -<그룹ChatID> #그룹용
templateBody: |
📢 Docker 이미지 업데이트 감지됨!
🐳 이미지: {{ .Entry.Image }}
🏷️ 태그: {{ .Entry.Image.Tag }}
🔍 Digest: {{ .Entry.Image.Digest }}
🕒 빌드일자: {{ .Entry.Manifest.Created }}
🧭 공급자: {{ .Entry.Provider }}
🔗 링크: {{ .Entry.Image.HubLink }}
<테스트 방법>
터미널 창에서 docker compose exec diun diun notif test 실행
<diun이 정상 실행중임에도 불구하고 알림이 오지 않는 증상 시 해결방법>
🔧 모든 컨테이너 감시를 위한 필수 조건
diun
은 **"라벨(label)을 통해 감시할 컨테이너를 명시적으로 지정"**해야 합니다.
즉, 모든 컨테이너를 감시하려면 각 컨테이너에 다음 라벨이 있어야 합니다:
labels:
- "diun.enable=true"
예시 (docker-compose에서):
version: "3"
services:
nginx:
image: nginx:latest
labels:
- "diun.enable=true"
🧩 해결 방법 2가지
✅ 방법 1: 감시할 컨테이너에
label:
- "diun.enable=true"
추가
권장 방식. 어떤 컨테이너를 감시할지 명확하게 제어 가능.
docker run -d --label diun.enable=true nginx:latest
✅ 방법 2: watch.repos
방식 사용 (정적 이미지 지정 방식)
특정 이미지 레포만 감시하려면
.yml
에 명시
watch:
repos:
- name: nginx
- name: redis
📌 정리
설정 항목 | 설명 |
---|---|
providers.docker |
실행 중인 Docker 컨테이너 중 label=diun.enable=true 가 있는 것만 감시 |
watch.repos |
Docker Hub 기준으로 직접 이미지 지정 (컨테이너 없어도 됨) |