mirror of
https://github.com/andrey271192/kaskad_web_vpn.git
synced 2026-09-20 11:55:35 +00:00
fix(docker): apt HTTPS mirrors + docs
Avoid corrupt HTTP caches; refresh ca-certificates/iptables deps; README troubleshooting for signature errors. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
26
Dockerfile
26
Dockerfile
@@ -1,4 +1,4 @@
|
|||||||
FROM docker:27-cli AS dockercli
|
FROM docker:26-cli AS dockercli
|
||||||
|
|
||||||
FROM python:3.12-slim-bookworm
|
FROM python:3.12-slim-bookworm
|
||||||
|
|
||||||
@@ -7,10 +7,28 @@ COPY --from=dockercli /usr/local/bin/docker /usr/local/bin/docker
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
ENV PYTHONDONTWRITEBYTECODE=1
|
||||||
ENV PYTHONUNBUFFERED=1
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
RUN apt-get update \
|
# HTTP-зеркала иногда ломаются за прокси/кэшем → подпись InRelease «invalid».
|
||||||
&& apt-get install -y --no-install-recommends iptables iproute2 \
|
# Чистим списки и переводим deb.debian.org / security на HTTPS перед update.
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
RUN set -eux; \
|
||||||
|
apt-get clean; \
|
||||||
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
if [ -f /etc/apt/sources.list ]; then \
|
||||||
|
sed -i \
|
||||||
|
-e 's|http://deb.debian.org|https://deb.debian.org|g' \
|
||||||
|
-e 's|http://security.debian.org|https://security.debian.org|g' \
|
||||||
|
/etc/apt/sources.list; \
|
||||||
|
fi; \
|
||||||
|
if [ -f /etc/apt/sources.list.d/debian.sources ]; then \
|
||||||
|
sed -i \
|
||||||
|
-e 's|http://deb.debian.org|https://deb.debian.org|g' \
|
||||||
|
-e 's|http://security.debian.org|https://security.debian.org|g' \
|
||||||
|
/etc/apt/sources.list.d/debian.sources; \
|
||||||
|
fi; \
|
||||||
|
apt-get -o Acquire::Retries=5 update; \
|
||||||
|
apt-get install -y --no-install-recommends ca-certificates iptables iproute2; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|||||||
17
README.md
17
README.md
@@ -17,6 +17,23 @@
|
|||||||
- Linux с Docker (для NAT — предпочтительно host network + privileged).
|
- Linux с Docker (для NAT — предпочтительно host network + privileged).
|
||||||
- Доступ к **`docker.sock`** на хосте (по умолчанию монтируется), чтобы в таблице «Сервисы» третья строка могла показывать статус **самого контейнера** как `kaskad-web.service`.
|
- Доступ к **`docker.sock`** на хосте (по умолчанию монтируется), чтобы в таблице «Сервисы» третья строка могла показывать статус **самого контейнера** как `kaskad-web.service`.
|
||||||
|
|
||||||
|
## Сборка образа: «invalid signature» / apt не подписан
|
||||||
|
|
||||||
|
Чаще всего: **битый кэш Docker BuildKit**, **прокси по HTTP**, **место на диске**, **сбитые часы** на хосте.
|
||||||
|
|
||||||
|
На хосте:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
date -u # время должно быть разумным
|
||||||
|
df -h /var/lib/docker # есть ли свободное место
|
||||||
|
docker builder prune -af # сбросить кэш сборки
|
||||||
|
docker build --pull --no-cache -t kaskad-web-vpn:test .
|
||||||
|
```
|
||||||
|
|
||||||
|
Если ошибка остаётся: временно отключите HTTP-прокси для сборки (`unset http_proxy https_proxy NO_PROXY`) или собирайте на другой сети.
|
||||||
|
|
||||||
|
В образе списки APT по умолчанию переводятся на **HTTPS** (`deb.debian.org`, `security.debian.org`), чтобы обходить «порченые» HTTP-кэши.
|
||||||
|
|
||||||
## Установка одной командой
|
## Установка одной командой
|
||||||
|
|
||||||
Порт **8088**, логин **user1**, пароль в **`/root/kaskad_web.initial-password`** (или задайте **`ADMIN_PASSWORD`**):
|
Порт **8088**, логин **user1**, пароль в **`/root/kaskad_web.initial-password`** (или задайте **`ADMIN_PASSWORD`**):
|
||||||
|
|||||||
Reference in New Issue
Block a user