feat(docker): enhance Dockerfile and entrypoint for improved package verification and diagnostics

This commit is contained in:
pacnpal
2025-01-28 21:24:00 -05:00
parent f961c66ef0
commit 889f0a943e
4 changed files with 28 additions and 18 deletions

View File

@@ -18,22 +18,26 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# Upgrade pip and essential tools
RUN pip install --no-cache-dir --upgrade pip setuptools wheel
# Copy requirements first for better caching
COPY requirements.txt .
# Copy source code first
COPY . /app/
# Install Python dependencies in venv
# Set PYTHONPATH
ENV PYTHONPATH=/app/src
# Install requirements
RUN pip install --no-cache-dir -r requirements.txt
# Copy the source code
COPY . .
# Clean any previous installations and install the package
RUN pip uninstall -y simpleguardhome || true && \
# Install the package in development mode
RUN cd /app && \
pip uninstall -y simpleguardhome || true && \
pip install -e . && \
echo "Verifying installation..." && \
pip show simpleguardhome && \
pip list && \
pip list | grep simpleguardhome && \
python3 -c "import sys; print('Python path:', sys.path)" && \
python3 -c "import simpleguardhome; print('Package found at:', simpleguardhome.__file__)"
echo "Testing import..." && \
python3 -c "import simpleguardhome; print('Found package at:', simpleguardhome.__file__)" && \
ls -la /app/src/simpleguardhome/
# Copy and set up entrypoint script
COPY docker-entrypoint.sh /usr/local/bin/

View File

@@ -14,16 +14,22 @@ trap handle_term SIGTERM SIGINT
# Print diagnostic information
echo "Verifying package installation..."
echo "Python path:"
echo "PYTHONPATH environment variable:"
echo $PYTHONPATH
echo "Directory contents of /app/src:"
ls -la /app/src/
echo "Directory contents of /app/src/simpleguardhome:"
ls -la /app/src/simpleguardhome/
echo "Python sys.path:"
python3 -c "import sys; print('\n'.join(sys.path))"
echo "Installed packages:"
pip list
echo "Attempting to import simpleguardhome..."
python3 -c "import simpleguardhome; print('Successfully imported simpleguardhome')" || exit 1
pip list | grep simpleguardhome
echo "Attempting to import and locate simpleguardhome..."
python3 -c "import simpleguardhome, os; print('Found at:', os.path.abspath(simpleguardhome.__file__)); print('Parent dir contents:', os.listdir(os.path.dirname(simpleguardhome.__file__)))" || exit 1
# Start the application
echo "Starting SimpleGuardHome server..."
exec python3 -m simpleguardhome.main
exec python3 -c "from simpleguardhome import start; start()"
# Store child PID
child=$!

View File

@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
setup(
name="simpleguardhome",
version="0.1.0",
packages=find_packages(where="src"),
packages=find_packages(where="src", include=["simpleguardhome*"]),
package_dir={"": "src"},
include_package_data=True,
package_data={

View File

@@ -188,10 +188,10 @@ def start():
"""Start the application using uvicorn."""
import uvicorn
uvicorn.run(
"simpleguardhome.main:app",
app,
host="0.0.0.0",
port=8000,
reload=True
reload=False # Disable reload in Docker
)
if __name__ == "__main__":