| # ========================================== | |
| # Dockerfile для поднятия code-server (VS Code в браузере) | |
| # на базе Ubuntu 24.04 с поддержкой Python и HF | |
| # ========================================== | |
| # Берем за основу чистую Ubuntu 24.04 | |
| FROM ubuntu:24.04 | |
| # Отключаем интерактивные запросы при установке пакетов (чтобы сборка не зависала в ожидании ввода) | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # Обновляем списки пакетов и ставим базовый софт: | |
| # curl, sudo, git, wget, компиляторы (build-essential), python3 и pip. | |
| # В конце чистим кэш apt, чтобы финальный образ не раздувался. | |
| RUN apt-get update && apt-get install -y \ | |
| curl \ | |
| sudo \ | |
| git \ | |
| wget \ | |
| build-essential \ | |
| python3 \ | |
| python3-pip \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Ставим code-server (VS Code, который работает в браузере) через официальный скрипт установки | |
| RUN curl -fsSL https://code-server.dev/install.sh | sh | |
| # Выдаем встроенному юзеру 'ubuntu' (UID 1000) права sudo без необходимости вводить пароль | |
| RUN echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers | |
| # Создаем рабочую директорию и назначаем юзера 'ubuntu' владельцем его домашней папки | |
| RUN mkdir -p /home/ubuntu/workspace && chown -R ubuntu:ubuntu /home/ubuntu | |
| # Переключаемся на непривилегированного пользователя (так безопаснее, чем работать из-под root) | |
| USER ubuntu | |
| # Задаем рабочую директорию по умолчанию | |
| WORKDIR /home/ubuntu/workspace | |
| # Открываем порт 7860 (стандартный порт для приложений Hugging Face / Gradio / Streamlit) | |
| EXPOSE 7860 | |
| # Запускаем code-server: он будет слушать все сетевые интерфейсы на порту 7860 | |
| # и требовать ввод пароля при подключении через браузер | |
| CMD ["code-server", "--bind-addr", "0.0.0.0:7860", "--auth", "password"] |