File size: 2,356 Bytes
5379f92 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | # ==========================================
# 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"] |