fix: resolve container startup issues

backend/Dockerfile:
- Add ENV PYTHONPATH=/app so alembic can import app.config
- Change CMD to bash entrypoint.sh (volume mount breaks chmod +x)

nginx/nginx.conf:
- Add resolver 127.0.0.11 (Docker internal DNS)
- Use set $backend/$frontend variables so nginx resolves
  hostnames per-request instead of at startup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Aleksey Razorvin
2026-03-21 12:15:37 +05:00
parent 8b17c5d3c4
commit cc23783e2a
2 changed files with 10 additions and 3 deletions
+3 -1
View File
@@ -6,6 +6,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends postgresql-clie
WORKDIR /app WORKDIR /app
ENV PYTHONPATH=/app
COPY requirements.txt . COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt RUN pip install --no-cache-dir -r requirements.txt
@@ -13,4 +15,4 @@ COPY . .
RUN chmod +x entrypoint.sh RUN chmod +x entrypoint.sh
CMD ["./entrypoint.sh"] CMD ["bash", "entrypoint.sh"]
+7 -2
View File
@@ -1,16 +1,21 @@
server { server {
listen 80; listen 80;
# Docker внутренний DNS — резолвим хосты в момент запроса, а не при старте nginx
resolver 127.0.0.11 valid=30s;
# API запросы → FastAPI backend # API запросы → FastAPI backend
location /api/ { location /api/ {
proxy_pass http://backend:8000; set $backend http://backend:8000;
proxy_pass $backend;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
} }
# Всё остальное → Vite dev server (с поддержкой WebSocket для HMR) # Всё остальное → Vite dev server (с поддержкой WebSocket для HMR)
location / { location / {
proxy_pass http://frontend:5173; set $frontend http://frontend:5173;
proxy_pass $frontend;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade"; proxy_set_header Connection "upgrade";