소스 검색

fix: optimize certbot ownership script to reduce container startup time

Replace inefficient find/execdir implementation that was causing 3+ minute
startup delays with a more efficient approach that:

1. Uses a flag file to skip redundant operations on container restarts
2. Processes site-packages directories with bulk chown operations instead
   of individual file checks and changes
3. Maintains the same functionality while dramatically improving performance

This change should significantly reduce container startup time while ensuring
all necessary file permissions are still properly set.
Aditya 8 달 전
부모
커밋
0cab720f23
1개의 변경된 파일16개의 추가작업 그리고 3개의 파일을 삭제
  1. 16 3
      docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/30-ownership.sh

+ 16 - 3
docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/30-ownership.sh

@@ -23,6 +23,19 @@ chown -R "$PUID:$PGID" /etc/nginx/nginx
 chown -R "$PUID:$PGID" /etc/nginx/nginx.conf
 chown -R "$PUID:$PGID" /etc/nginx/conf.d
 
-# Prevents errors when installing python certbot plugins when non-root
-chown "$PUID:$PGID" /opt/certbot /opt/certbot/bin
-find /opt/certbot/lib/python*/site-packages -not -user "$PUID" -execdir chown "$PUID:$PGID" {} \+
+# Certbot directories - optimized approach
+CERT_INIT_FLAG="/opt/certbot/.ownership_initialized"
+
+if [ ! -f "$CERT_INIT_FLAG" ]; then
+    # Prevents errors when installing python certbot plugins when non-root
+    chown "$PUID:$PGID" /opt/certbot /opt/certbot/bin
+
+    # Handle all site-packages directories efficiently
+    find /opt/certbot/lib -type d -name "site-packages" | while read -r SITE_PACKAGES_DIR; do
+        chown -R "$PUID:$PGID" "$SITE_PACKAGES_DIR"
+    done
+
+    # Create a flag file to skip this step on subsequent runs
+    touch "$CERT_INIT_FLAG"
+    chown "$PUID:$PGID" "$CERT_INIT_FLAG"
+fi