NAS compose를 운영 실물 정의로 동기화

This commit is contained in:
Yun Chan 2026-09-01 11:49:00 +09:00
parent ed3252ede0
commit 8931e64b49

View file

@ -209,11 +209,15 @@ services:
read_only: true read_only: true
tmpfs: tmpfs:
- /tmp:rw,noexec,nosuid,size=16m - /tmp:rw,noexec,nosuid,size=16m
# nginx가 client/proxy/fastcgi 임시 파일과 PID를 기록해야 한다. # nginx needs writable temporary paths while the root filesystem remains read-only.
# 루트 FS는 계속 read-only로 유지한다.
- /var/cache/nginx:rw,noexec,nosuid,size=16m - /var/cache/nginx:rw,noexec,nosuid,size=16m
- /var/run:rw,noexec,nosuid,size=1m - /var/run:rw,noexec,nosuid,size=1m
cap_drop: [ALL] cap_drop: [ALL]
cap_add:
- NET_BIND_SERVICE
- CHOWN
- SETUID
- SETGID
security_opt: security_opt:
- no-new-privileges:true - no-new-privileges:true
labels: labels:
@ -240,6 +244,8 @@ services:
- /config:rw,noexec,nosuid,size=16m - /config:rw,noexec,nosuid,size=16m
- /tmp:rw,noexec,nosuid,size=16m - /tmp:rw,noexec,nosuid,size=16m
cap_drop: [ALL] cap_drop: [ALL]
cap_add:
- NET_BIND_SERVICE
security_opt: security_opt:
- no-new-privileges:true - no-new-privileges:true
labels: labels:
@ -264,10 +270,12 @@ services:
source: ${VIGNETTE_TUNNEL_CONFIG_PATH:?Rendered cloudflared config path is required} source: ${VIGNETTE_TUNNEL_CONFIG_PATH:?Rendered cloudflared config path is required}
target: /etc/cloudflared/config.yml target: /etc/cloudflared/config.yml
read_only: true read_only: true
- type: bind - type: volume
source: ${VIGNETTE_TUNNEL_CREDENTIAL_PATH:?Tunnel credential JSON path is required} source: cloudflaredsecrets
target: /run/secrets/vignette-tunnel.json target: /run/secrets
read_only: true read_only: true
volume:
nocopy: true
read_only: true read_only: true
tmpfs: tmpfs:
- /tmp:rw,noexec,nosuid,size=32m - /tmp:rw,noexec,nosuid,size=32m
@ -288,6 +296,9 @@ volumes:
apiuploads: apiuploads:
external: true external: true
name: ${VIGNETTE_NAS_APIUPLOADS_VOLUME:?Explicit NAS uploads volume name is required} name: ${VIGNETTE_NAS_APIUPLOADS_VOLUME:?Explicit NAS uploads volume name is required}
cloudflaredsecrets:
external: true
name: ${VIGNETTE_NAS_CLOUDFLARED_SECRETS_VOLUME:?Explicit NAS cloudflared secrets volume name is required}
networks: networks:
backend: backend: