Fix overlay service permission issue by running as root for shared volume access
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 22s
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 22s
This commit is contained in:
@@ -20,10 +20,11 @@ COPY overlay_service.py .
|
|||||||
# Create recordings directory
|
# Create recordings directory
|
||||||
RUN mkdir -p /recordings
|
RUN mkdir -p /recordings
|
||||||
|
|
||||||
# Run as non-root user
|
# Create user but don't switch to it - need root for shared volume
|
||||||
RUN useradd -m -s /bin/bash overlay && \
|
RUN useradd -m -s /bin/bash overlay && \
|
||||||
chown -R overlay:overlay /app /recordings
|
chown -R overlay:overlay /app /recordings
|
||||||
USER overlay
|
# Running as root to access shared /tmp volume
|
||||||
|
# USER overlay
|
||||||
|
|
||||||
# Health check
|
# Health check
|
||||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
||||||
|
@@ -246,8 +246,20 @@ class ScoreOverlayService:
|
|||||||
|
|
||||||
# Initialize overlay text
|
# Initialize overlay text
|
||||||
court_name = os.getenv('COURT_NAME', f'Court {self.court_number}')
|
court_name = os.getenv('COURT_NAME', f'Court {self.court_number}')
|
||||||
with open('/tmp/score.txt', 'w') as f:
|
try:
|
||||||
f.write(f"{court_name} - Waiting for match...")
|
# Create file with write permissions for all
|
||||||
|
with open('/tmp/score.txt', 'w') as f:
|
||||||
|
f.write(f"{court_name} - Waiting for match...")
|
||||||
|
os.chmod('/tmp/score.txt', 0o666)
|
||||||
|
except PermissionError:
|
||||||
|
# If file exists and we can't write, try to remove and recreate
|
||||||
|
try:
|
||||||
|
os.remove('/tmp/score.txt')
|
||||||
|
with open('/tmp/score.txt', 'w') as f:
|
||||||
|
f.write(f"{court_name} - Waiting for match...")
|
||||||
|
os.chmod('/tmp/score.txt', 0o666)
|
||||||
|
except:
|
||||||
|
logger.error("Cannot create score.txt file - check permissions")
|
||||||
|
|
||||||
await self.cleanup_old_recordings()
|
await self.cleanup_old_recordings()
|
||||||
last_cleanup = datetime.now()
|
last_cleanup = datetime.now()
|
||||||
|
Reference in New Issue
Block a user