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 a46b54a06e
commit 230f28d54e
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()