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"]