Add devcontainer support for production-parity debugging

This commit is contained in:
badblocks 2025-05-09 20:33:12 -07:00
parent 762361a21b
commit 89cfa50519
5 changed files with 46 additions and 8 deletions

View file

@ -0,0 +1,18 @@
{
"dockerComposeFile": ["../docker-compose.yml", "docker-compose_extend.yml"],
"service": "web",
"name": "pkmntrade-club",
"workspaceFolder": "/workspace",
"postStartCommand": "direnv allow /workspace",
"remoteUser": "app",
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.black-formatter",
"ms-python.isort",
"ms-azuretools.vscode-docker"
]
}
}
}

View file

@ -0,0 +1,11 @@
services:
web:
volumes:
- .:/workspace:cached
- ./seed:/seed:ro
- ./src/pkmntrade_club:/app/lib/python3.12/site-packages/pkmntrade_club:cached
cap_add:
- SYS_PTRACE
security_opt:
- seccomp:unconfined
command: /bin/sh -c "while sleep 1000; do :; done"

View file

@ -64,7 +64,7 @@ WORKDIR /app
# Don't run app as root # Don't run app as root
RUN <<EOT RUN <<EOT
groupadd -r app -g 10003 groupadd -r app -g 10003
useradd -r -d /app -u 10003 -s /sbin/nologin -g app -N app useradd -r -d /app -u 10003 -s /bin/bash -g app -N app
EOT EOT
# Runtime dependencies # Runtime dependencies
@ -73,7 +73,7 @@ apt-get update -qy
apt-get install -qyy \ apt-get install -qyy \
-o APT::Install-Recommends=false \ -o APT::Install-Recommends=false \
-o APT::Install-Suggests=false \ -o APT::Install-Suggests=false \
xvfb curl xvfb curl direnv
apt-get clean apt-get clean
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
EOT EOT
@ -88,6 +88,8 @@ COPY --chown=app:app --chmod=700 /scripts/deploy.sh /deploy.sh
ENTRYPOINT ["/entrypoint.sh"] ENTRYPOINT ["/entrypoint.sh"]
RUN mkdir -p /app/.cursor-server && chown app:app /app /app/.cursor-server
USER app USER app
EXPOSE 8000 EXPOSE 8000

View file

@ -12,16 +12,17 @@ services:
build: . build: .
volumes: volumes:
- ./.env.dev:/.env:ro - ./.env.dev:/.env:ro
- ./seed:/seed:ro
- ./src/pkmntrade_club/accounts/migrations:/app/lib/python3.12/site-packages/pkmntrade_club/accounts/migrations # for makemigrations
- ./src/pkmntrade_club/cards/migrations:/app/lib/python3.12/site-packages/pkmntrade_club/cards/migrations # for makemigrations
- ./src/pkmntrade_club/trades/migrations:/app/lib/python3.12/site-packages/pkmntrade_club/trades/migrations # for makemigrations
- ./src/pkmntrade_club/home/migrations:/app/lib/python3.12/site-packages/pkmntrade_club/home/migrations # for makemigrations
env_file: env_file:
- .env.dev - .env.dev
depends_on: depends_on:
db: db:
condition: service_healthy condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
db: db:
image: postgres:16 image: postgres:16
ports: ports:

View file

@ -18,4 +18,10 @@ services:
- .env.production - .env.production
deploy: deploy:
mode: replicated mode: replicated
replicas: 4 replicas: 4
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s