28 lines
818 B
Docker
28 lines
818 B
Docker
# Use pre-built TeleBot binaries
|
|
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
|
|
WORKDIR /app
|
|
|
|
# Install required packages
|
|
RUN apt-get update && \
|
|
apt-get install -y procps curl && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copy pre-built TeleBot release
|
|
COPY telebot-release.tar.gz /tmp/
|
|
RUN tar xzf /tmp/telebot-release.tar.gz -C /app --strip-components=1 && \
|
|
rm /tmp/telebot-release.tar.gz
|
|
|
|
# Create necessary directories
|
|
RUN mkdir -p /app/data /app/logs /app/image_cache && \
|
|
chmod 755 /app/data /app/logs /app/image_cache
|
|
|
|
# Set environment variables
|
|
ENV DOTNET_ENVIRONMENT=Production
|
|
ENV TZ=UTC
|
|
|
|
# Health check
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
CMD pgrep -f "dotnet.*TeleBot" > /dev/null || exit 1
|
|
|
|
# Run the application
|
|
ENTRYPOINT ["dotnet", "TeleBot.dll"] |