From c2d6cfa78e13e01f7056a6f8c3874bd001876abf Mon Sep 17 00:00:00 2001 From: Ross Date: Sun, 26 Oct 2025 19:30:48 +0000 Subject: [PATCH] add local dev docker --- docker/.env.dev | 14 +++++++++++++- docker/docker-compose.yml | 18 +++++++++++++++--- rad/Dockerfile | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 rad/Dockerfile diff --git a/docker/.env.dev b/docker/.env.dev index 7e6247aa..73f8fd7f 100644 --- a/docker/.env.dev +++ b/docker/.env.dev @@ -8,4 +8,16 @@ DB_USER=django DB_PASSWORD=postgres DB_PORT=5432 -MEMCACHE_HOST=cache \ No newline at end of file +MEMCACHE_HOST=cache + +# DEV-specific vars used by rad/settings_local.py +DEV_USE_POSTGRES=1 +DEV_DB_NAME=${DB_NAME} +DEV_DB_USER=${DB_USER} +DEV_DB_PASSWORD=${DB_PASSWORD} +DEV_DB_HOST=${DB_HOST} +DEV_DB_PORT=${DB_PORT} + +# pgAdmin creds +PGADMIN_DEFAULT_EMAIL=admin@example.com +PGADMIN_DEFAULT_PASSWORD=admin \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 72a61440..cf18cca5 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -7,11 +7,13 @@ services: - ./redis/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] web: - build: ./rad + build: + context: .. + dockerfile: rad/Dockerfile command: python manage.py runserver 0.0.0.0:8000 #command: pip install -r requirements.txt volumes: - - ./rad/:/usr/src/rad/ + - ../rad/:/usr/src/rad/ - ../rts/:/usr/src/rad/rts - ../Viewers/platform/app/dist/:/usr/src/rad/viewer - ./backups:/usr/src/backups @@ -30,10 +32,20 @@ services: - POSTGRES_USER=django - POSTGRES_PASSWORD=postgres - POSTGRES_DB=rad + pgadmin: + image: dpage/pgadmin4:7.2 + environment: + - PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL:-admin@local} + - PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD:-admin} + ports: + - 8080:80 + volumes: + - pgadmin_data:/var/lib/pgadmin cache: image: memcached ports: - 11211:11211 volumes: - postgres_data: \ No newline at end of file + postgres_data: + pgadmin_data: \ No newline at end of file diff --git a/rad/Dockerfile b/rad/Dockerfile new file mode 100644 index 00000000..03b320c3 --- /dev/null +++ b/rad/Dockerfile @@ -0,0 +1,34 @@ +FROM python:3.14-slim + +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +# Install packages needed to build common Python packages and Postgres client +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + gcc \ + git \ + libpq-dev \ + pkg-config \ + libcairo2-dev \ + libgdk-pixbuf-xlib-2.0-0 \ + libgdk-pixbuf-xlib-2.0-dev \ + libjpeg-dev \ + zlib1g-dev \ + wget \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /usr/src/app + +# Install Python deps first for better caching +COPY requirements.txt /usr/src/app/ +RUN pip install --upgrade pip setuptools wheel && \ + pip install --no-cache-dir -r requirements.txt + +# Copy project (will be shadowed by volume in development) +COPY . /usr/src/app + +WORKDIR /usr/src/app + +CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]