# syntax=docker/dockerfile:1.7 FROM python:3.12-slim # Python оптимизации ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_DISABLE_PIP_VERSION_CHECK=1 \ PIP_NO_CACHE_DIR=1 # Переменные окружения по умолчанию для tg-ws-proxy ENV TG_WS_PROXY_HOST=0.0.0.0 \ TG_WS_PROXY_PORT=1080 \ TG_WS_PROXY_LOGGER=true \ TG_WS_PROXY_LOG_LEVEL=INFO \ TG_WS_PROXY_LOG_FILE="" \ TG_WS_PROXY_LOG_MAX_MB=100 \ TG_WS_PROXY_LOG_BACKUPS=3 \ TG_WS_PROXY_BIND_MODE=network \ TG_WS_PROXY_DC_IPS="2:149.154.167.220 4:149.154.167.220" \ TG_WS_PROXY_BUF_KB=256 \ TG_WS_PROXY_POOL_SIZE=4 RUN apt-get update \ && apt-get install -y --no-install-recommends build-essential cargo libffi-dev libssl-dev tini ca-certificates \ && rm -rf /var/lib/apt/lists/* \ && groupadd --system app \ && useradd --system --gid app --create-home --home-dir /home/app app WORKDIR /app COPY pyproject.toml README.md LICENSE ./ COPY proxy ./proxy COPY utils ./utils COPY config.py ./ RUN pip install --upgrade pip setuptools wheel \ && pip install . USER app EXPOSE 1080/tcp # Собираем аргументы командной строки из переменных окружения ENTRYPOINT ["/usr/bin/tini", "--", "/bin/sh", "-lc", "set -eu; \ args=\"--host ${TG_WS_PROXY_HOST} --port ${TG_WS_PROXY_PORT} --bind-mode ${TG_WS_PROXY_BIND_MODE} \ --log-level ${TG_WS_PROXY_LOG_LEVEL} --buf-kb ${TG_WS_PROXY_BUF_KB} --pool-size ${TG_WS_PROXY_POOL_SIZE}\"; \ \ # Добавляем --quiet если логгер отключен \ if [ \"${TG_WS_PROXY_LOGGER}\" = \"false\" ] || [ \"${TG_WS_PROXY_LOGGER}\" = \"0\" ] || [ \"${TG_WS_PROXY_LOGGER}\" = \"no\" ]; then \ args=\"$args --quiet\"; \ fi; \ \ # Добавляем log-file если указан \ if [ -n \"${TG_WS_PROXY_LOG_FILE}\" ]; then \ args=\"$args --log-file ${TG_WS_PROXY_LOG_FILE} --log-max-mb ${TG_WS_PROXY_LOG_MAX_MB} --log-backups ${TG_WS_PROXY_LOG_BACKUPS}\"; \ fi; \ \ # Добавляем dc-ip \ for dc in ${TG_WS_PROXY_DC_IPS}; do \ args=\"$args --dc-ip $dc\"; \ done; \ \ # Запускаем прокси \ exec python -u -m proxy.tg_ws_proxy $args \"$@\"", "--"] CMD []