# FROM postgres:15 # # Update package list and install Python 3, Pip, and any required packages # FROM ubuntu:20.04 # # Update package list and install Python 3, Pip, and required packages # RUN apt-get update && apt-get install -y python3 python3-pip python3-venv # # Install dependencies for PostgreSQL or Python packages # RUN apt-get install -y libpq-dev gcc # # Create and activate a virtual environment # WORKDIR /app # RUN python3 -m venv venv # ENV PATH="/app/venv/bin:$PATH" # # Copy application files # COPY . /app # ENV DEBIAN_FRONTEND=noninteractive # # Install Python dependencies inside the virtual environment # RUN pip install --upgrade pip # RUN pip install -r requirements.txt # # Install required packages for PostgreSQL # RUN apt-get update && apt-get install -y \ # postgresql \ # postgresql-contrib \ # && rm -rf /var/lib/apt/lists/* # # Set environment variables for PostgreSQL # ENV POSTGRES_USER="admin" # ENV POSTGRES_PASSWORD="admin" # ENV POSTGRES_DB="admin" # # Expose the PostgreSQL port # EXPOSE 5432 # # Install any necessary dependencies # # RUN pip install -r requirements.txt # # Initialize PostgreSQL database and start the service # # Initialize PostgreSQL database and start the service # # Set environment variables for database name, username, and password # # Optional: If you want to initialize the database with a script # COPY init.sql /docker-entrypoint-initdb.d/ # # Expose PostgreSQL default port # EXPOSE 5432 # EXPOSE 7860 # # Command to run the application along with PostgreSQL # CMD service postgresql start # ENTRYPOINT ["python3", "app.py"] # Use the official Python image as a base image FROM python:3.8-slim # Set environment variables ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 # Set the working directory in the container WORKDIR /app # Copy the requirements file into the container COPY requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy the rest of the application code into the container COPY . . # Expose the port the app runs on EXPOSE 7860 # Start the Flask application CMD ["flask", "run"]