Добавил WireGuard и nginx proxy для Flask

This commit is contained in:
Alex55 2026-03-25 14:08:45 +02:00
parent 2fd6c40360
commit c1029f5a6a
2 changed files with 12 additions and 29 deletions

View File

@ -1,7 +1,7 @@
FROM python:3.12-slim-bookworm FROM python:3.12-slim-bookworm
# The installer requires curl (and certificates) to download the release archive # The installer requires curl (and certificates) to download the release archive
RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates nano RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates nano wireguard iproute2 iputils-ping curl
# Download the latest installer # Download the latest installer
ADD https://astral.sh/uv/install.sh /uv-installer.sh ADD https://astral.sh/uv/install.sh /uv-installer.sh
@ -26,4 +26,4 @@ EXPOSE 5205
# Presuming there is a `my_app` command provided by the project uvicorn main:app --reload # Presuming there is a `my_app` command provided by the project uvicorn main:app --reload
CMD ["uv", "run", "main.py"] CMD ["bash", "-c", "wg-quick up /app/wireguard/wg0.conf && uv run main.py"]

View File

@ -14,35 +14,18 @@ services:
- "host.docker.internal:host-gateway" - "host.docker.internal:host-gateway"
restart: always restart: always
wireguard:
image: linuxserver/wireguard
container_name: wg-client
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Amsterdam
volumes:
- ./wireguard:/config
- /lib/modules:/lib/modules
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
networks:
- app_net
web: web:
build: . build: .
container_name: flask-dev container_name: flask-dev
network_mode: "service:wireguard" # весь трафик через WireGuard network_mode: "service:wireguard"
ports:
- "5205:5205" # Пробрасываем порт наружу
volumes:
# Главная строка: монтируем текущую папку с кодом (.)
# в папку /app внутри контейнера
- .:/app
environment: environment:
- FLASK_ENV=development - FLASK_DEBUG=1 # Дополнительная страховка для включения дебага
depends_on: - PYTHONUNBUFFERED=1 # Чтобы логи выводились сразу, а не кэшировались
- wireguard
networks:
app_net:
name: app_net