diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..aabe77d --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +APT_PROXY=http://192.168.1.60:3142 diff --git a/.gitignore b/.gitignore index fc1cbfe..ac99dc0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ nvidia-smi* # local runtime data players/*_steam/ players/*_config/sunshine.conf +.env +!.env.example # do not publish private Sunshine TLS keys players/*_config/credentials/ diff --git a/Dockerfile b/Dockerfile index 9f2bb96..52fd708 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,12 @@ FROM ubuntu:22.04 # Отключаем интерактивные вопросы во время установки ENV DEBIAN_FRONTEND=noninteractive +# Опциональный прокси для apt (например apt-cacher-ng: http://192.168.1.60:3142) +ARG APT_PROXY +RUN if [ -n "$APT_PROXY" ]; then \ + printf 'Acquire::http::Proxy "%s";\nAcquire::https::Proxy "%s";\n' "$APT_PROXY" "$APT_PROXY" > /etc/apt/apt.conf.d/01proxy; \ + fi + # 1. Добавляем 32-битную архитектуру для Steam и базовые графические зависимости RUN dpkg --add-architecture i386 && \ apt-get update && apt-get install -y \ diff --git a/README.md b/README.md index 9020364..9557660 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,21 @@ docker-compose up -d ``` +### APT кэширующий прокси (опционально) + +Если у вас есть `apt-cacher-ng` (например `http://192.168.1.60:3142`), можно ускорить сборку образов: + +1. Создайте `.env` рядом с `docker-compose.yml`: + ```bash + echo 'APT_PROXY=http://192.168.1.60:3142' > .env + ``` +2. Пересоберите контейнеры: + ```bash + docker compose up -d --build + ``` + +Прокси передается в `Dockerfile` через build-arg `APT_PROXY` и автоматически записывается в `/etc/apt/apt.conf.d/01proxy` при сборке. + ## Настройка ### Конфигурация Sunshine diff --git a/docker-compose.yml b/docker-compose.yml index b93cf60..7d42e83 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,8 @@ x-game-template: &game-template - build: . + build: + context: . + args: + APT_PROXY: ${APT_PROXY:-} user: "root" restart: unless-stopped privileged: true