Add devcontainer support for production-parity debugging
This commit is contained in:
parent
762361a21b
commit
89cfa50519
5 changed files with 46 additions and 8 deletions
18
.devcontainer/devcontainer.json
Normal file
18
.devcontainer/devcontainer.json
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
.devcontainer/docker-compose_extend.yml
Normal file
11
.devcontainer/docker-compose_extend.yml
Normal 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"
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue