sft0farid commited on
Commit
09d0d93
·
verified ·
1 Parent(s): 6805b3d

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +29 -10
Dockerfile CHANGED
@@ -2,29 +2,48 @@ FROM codercom/code-server:latest
2
 
3
  USER root
4
 
 
 
 
 
 
 
 
 
5
  RUN mkdir -p /data && \
6
  cp -r /home/coder/. /data/ 2>/dev/null || true && \
7
- mkdir -p /data/.vscode/user-data /data/.vscode/extensions /data/.local/bin /data/.local/share /data/.cache /data/.config && \
8
- chown -R coder:coder /data
 
 
 
 
 
 
 
 
 
9
 
10
  USER coder
11
 
 
12
  ENV HOME=/data
13
  ENV PATH=/data/.local/bin:$PATH
14
- ENV XDG_CACHE_HOME=/data/.cache
15
  ENV XDG_CONFIG_HOME=/data/.config
16
  ENV XDG_DATA_HOME=/data/.local/share
17
 
 
 
 
 
 
 
 
18
  RUN echo "export PS1='\[\033[01;32m\]farid\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >> /data/.bashrc
19
 
20
  WORKDIR /data
21
 
22
  EXPOSE 7860
23
 
24
- CMD ["code-server", \
25
- "--bind-addr", "0.0.0.0:7860", \
26
- "--auth", "password", \
27
- "--config", "/data/.vscode/config.yaml", \
28
- "--user-data-dir", "/data/.vscode/user-data", \
29
- "--extensions-dir", "/data/.vscode/extensions", \
30
- "/data"]
 
2
 
3
  USER root
4
 
5
+ # Системные пакеты, которые должны быть в образе всегда (не зависят от volume)
6
+ RUN apt-get update && apt-get install -y \
7
+ python3 \
8
+ python3-pip \
9
+ python3-venv \
10
+ && rm -rf /var/lib/apt/lists/*
11
+
12
+ # Готовим /data (персистентный volume) и локальные кэш-папки (эфемерные, на диске контейнера)
13
  RUN mkdir -p /data && \
14
  cp -r /home/coder/. /data/ 2>/dev/null || true && \
15
+ mkdir -p \
16
+ /data/.vscode/user-data \
17
+ /data/.vscode/extensions \
18
+ /data/.local/bin \
19
+ /data/.local/share \
20
+ /data/.config \
21
+ /tmp/.cache \
22
+ /tmp/.cache/pip \
23
+ /tmp/.cache/npm \
24
+ /tmp/ms-playwright \
25
+ && chown -R coder:coder /data /tmp/.cache /tmp/ms-playwright
26
 
27
  USER coder
28
 
29
+ # --- Персистентное (живёт в /data, переживает рестарт контейнера) ---
30
  ENV HOME=/data
31
  ENV PATH=/data/.local/bin:$PATH
 
32
  ENV XDG_CONFIG_HOME=/data/.config
33
  ENV XDG_DATA_HOME=/data/.local/share
34
 
35
+ # --- Эфемерное (быстрый локальный диск, не тащим тяжёлые кэши по сети) ---
36
+ ENV XDG_CACHE_HOME=/tmp/.cache
37
+ ENV PIP_CACHE_DIR=/tmp/.cache/pip
38
+ ENV NPM_CONFIG_CACHE=/tmp/.cache/npm
39
+ ENV PLAYWRIGHT_BROWSERS_PATH=/tmp/ms-playwright
40
+
41
+ # Короткий промпт вместо длинного хостнейма
42
  RUN echo "export PS1='\[\033[01;32m\]farid\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >> /data/.bashrc
43
 
44
  WORKDIR /data
45
 
46
  EXPOSE 7860
47
 
48
+ # Перед стартом:
49
+ # - чиним exec-права на бинарники в /d