66 lines
2.2 KiB
Docker
66 lines
2.2 KiB
Docker
# 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 []
|