Fix container logging visibility

Changes:
- Add -u flag to Python in Dockerfile to disable output buffering
- Add startup messages in main.py showing bot configuration
- Logs now appear immediately in kubectl logs output

This fixes the issue where no logs were visible when running
in Kubernetes pods due to Python's default stdout buffering.
This commit is contained in:
aserper
2025-12-12 23:59:03 -05:00
parent 2fe22f80c8
commit 961a6975ac
2 changed files with 14 additions and 2 deletions

View File

@@ -14,5 +14,5 @@ RUN pip install --no-cache-dir -r requirements.txt
# Copy the application code
COPY . /app
# Run Python script
CMD ["python", "main.py"]
# Run Python script with unbuffered output for container logs
CMD ["python", "-u", "main.py"]

12
main.py
View File

@@ -6,6 +6,8 @@ from bot import MastodonRSSBot
def main():
"""Initialize and run the bot with environment configuration"""
print("Starting Mastodon RSS Bot...")
# Load configuration from environment variables
bot = MastodonRSSBot(
client_id=os.environ["MASTODON_CLIENT_ID"],
@@ -20,6 +22,16 @@ def main():
),
)
print(f"Bot configured successfully:")
print(f" Instance: {os.environ['MASTODON_INSTANCE_URL']}")
print(f" Feed URL: {os.environ['RSS_FEED_URL']}")
print(f" Visibility: {os.environ.get('TOOT_VISIBILITY', 'public')}")
print(f" Check interval: {os.environ.get('CHECK_INTERVAL', '300')} seconds")
print(
f" State file: {os.environ.get('PROCESSED_ENTRIES_FILE', '/state/processed_entries.txt')}"
)
print()
# Start the bot
bot.run()