Update Dockerfile
Browse files- Dockerfile +73 -157
Dockerfile
CHANGED
|
@@ -1,5 +1,4 @@
|
|
| 1 |
FROM ubuntu:22.04
|
| 2 |
-
|
| 3 |
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
| 4 |
|
| 5 |
ENV DEBIAN_FRONTEND=noninteractive \
|
|
@@ -15,7 +14,7 @@ ENV DEBIAN_FRONTEND=noninteractive \
|
|
| 15 |
ZSH=/root/.oh-my-zsh
|
| 16 |
|
| 17 |
# ------------------------------------------------------------
|
| 18 |
-
# 1) 基础系统 +
|
| 19 |
# ------------------------------------------------------------
|
| 20 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 21 |
ca-certificates curl wget git git-lfs sudo \
|
|
@@ -32,141 +31,60 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
| 32 |
python3 python3-pip python3-venv python3-dev python-is-python3 \
|
| 33 |
libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
|
| 34 |
libncurses5-dev libncursesw5-dev libffi-dev liblzma-dev \
|
| 35 |
-
libxml2-dev libxslt1-dev libjpeg-dev libpng-dev libtiff-dev libopenjp2-7-dev libwebp-
|
| 36 |
-
|
| 37 |
-
ffmpeg tesseract-ocr \
|
| 38 |
-
fontconfig fonts-liberation fonts-noto-cjk fonts-noto-color-emoji \
|
| 39 |
-
iptables uidmap slirp4netns fuse-overlayfs \
|
| 40 |
-
libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 \
|
| 41 |
-
libdbus-1-3 libdrm2 libexpat1 libgbm1 libgcc-s1 libglib2.0-0 libgtk-3-0 \
|
| 42 |
-
libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 \
|
| 43 |
-
libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 \
|
| 44 |
-
libxfixes3 libxi6 libxkbcommon0 libxrandr2 libxrender1 libxshmfence1 libxss1 libxtst6 \
|
| 45 |
-
libatspi2.0-0 \
|
| 46 |
-
libwayland-client0 libwayland-cursor0 libwayland-egl1 libwayland-server0 \
|
| 47 |
-
&& locale-gen en_US.UTF-8 \
|
| 48 |
-
&& update-locale LANG=en_US.UTF-8 \
|
| 49 |
-
&& rm -rf /var/lib/apt/lists/*
|
| 50 |
-
|
| 51 |
-
# ------------------------------------------------------------
|
| 52 |
-
# 2) Docker Engine (dockerd + cli) - rootless 依赖也装上
|
| 53 |
-
# ------------------------------------------------------------
|
| 54 |
-
RUN install -m 0755 -d /etc/apt/keyrings \
|
| 55 |
-
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
|
| 56 |
-
&& chmod a+r /etc/apt/keyrings/docker.gpg \
|
| 57 |
-
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" \
|
| 58 |
-
> /etc/apt/sources.list.d/docker.list \
|
| 59 |
-
&& apt-get update \
|
| 60 |
-
&& apt-get install -y --no-install-recommends \
|
| 61 |
-
docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin \
|
| 62 |
-
&& rm -rf /var/lib/apt/lists/*
|
| 63 |
-
|
| 64 |
-
# ------------------------------------------------------------
|
| 65 |
-
# 3) Node.js v25 (最新版本)
|
| 66 |
-
# ------------------------------------------------------------
|
| 67 |
-
RUN set -eux; \
|
| 68 |
-
arch="$(dpkg --print-architecture)"; \
|
| 69 |
-
case "$arch" in \
|
| 70 |
-
amd64) node_arch="x64" ;; \
|
| 71 |
-
arm64) node_arch="arm64" ;; \
|
| 72 |
-
*) echo "Unsupported architecture: $arch" >&2; exit 1 ;; \
|
| 73 |
-
esac; \
|
| 74 |
-
NODE_VERSION=$(curl -fsSL https://nodejs.org/dist/latest-v25.x/ | grep -oP 'href="node-v25\.\d+\.\d+-linux-'${node_arch}'\.tar\.xz"' | head -1 | grep -oP 'v25\.\d+\.\d+'); \
|
| 75 |
-
if [ -z "$NODE_VERSION" ]; then NODE_VERSION="v25.0.0"; fi; \
|
| 76 |
-
echo "Installing Node.js $NODE_VERSION"; \
|
| 77 |
-
curl -fsSL "https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-${node_arch}.tar.xz" -o node.tar.xz; \
|
| 78 |
-
tar -xJf node.tar.xz -C /usr/local --strip-components=1 --no-same-owner; \
|
| 79 |
-
rm node.tar.xz; \
|
| 80 |
-
node -v; npm -v; \
|
| 81 |
-
npm config set update-notifier false; \
|
| 82 |
-
npm i -g npm@latest; \
|
| 83 |
-
npm cache clean --force
|
| 84 |
-
|
| 85 |
-
# ------------------------------------------------------------
|
| 86 |
-
# 4) code-server
|
| 87 |
-
# ------------------------------------------------------------
|
| 88 |
-
RUN curl -fsSL https://code-server.dev/install.sh | sh
|
| 89 |
-
|
| 90 |
-
# ------------------------------------------------------------
|
| 91 |
-
# 5) Playwright (Python) + Chromium
|
| 92 |
-
# ------------------------------------------------------------
|
| 93 |
-
RUN mkdir -p "${PLAYWRIGHT_BROWSERS_PATH}" \
|
| 94 |
-
&& python3 -m pip install --no-cache-dir -U pip setuptools wheel \
|
| 95 |
-
&& python3 -m pip install --no-cache-dir playwright \
|
| 96 |
-
&& python3 -m playwright install chromium \
|
| 97 |
-
&& python3 -m playwright install-deps chromium \
|
| 98 |
-
&& rm -rf /root/.cache/pip /var/lib/apt/lists/*
|
| 99 |
-
|
| 100 |
-
# Optional: Google Chrome (amd64 only)
|
| 101 |
-
RUN set -eux; \
|
| 102 |
-
arch="$(dpkg --print-architecture)"; \
|
| 103 |
-
if [ "$arch" = "amd64" ]; then \
|
| 104 |
-
install -m 0755 -d /etc/apt/keyrings; \
|
| 105 |
-
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /etc/apt/keyrings/google-chrome.gpg; \
|
| 106 |
-
chmod a+r /etc/apt/keyrings/google-chrome.gpg; \
|
| 107 |
-
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" \
|
| 108 |
-
> /etc/apt/sources.list.d/google-chrome.list; \
|
| 109 |
-
apt-get update; \
|
| 110 |
-
apt-get install -y --no-install-recommends google-chrome-stable; \
|
| 111 |
-
rm -rf /var/lib/apt/lists/*; \
|
| 112 |
-
fi
|
| 113 |
-
|
| 114 |
-
# ------------------------------------------------------------
|
| 115 |
# 6) oh-my-zsh + 高级主题配置
|
| 116 |
-
#
|
| 117 |
-
#
|
| 118 |
-
#
|
| 119 |
# ------------------------------------------------------------
|
| 120 |
RUN git clone --depth=1 https://github.com/ohmyzsh/ohmyzsh.git "${ZSH}" \
|
| 121 |
&& git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions "${ZSH}/custom/plugins/zsh-autosuggestions" \
|
| 122 |
&& git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting "${ZSH}/custom/plugins/zsh-syntax-highlighting"
|
| 123 |
|
| 124 |
-
# 创建自定义主题:使用 zsh 原生颜色系统,自动适应终端
|
| 125 |
RUN mkdir -p "${ZSH}/custom/themes" \
|
| 126 |
&& cat > "${ZSH}/custom/themes/pure-minimal.zsh-theme" <<'THEME'
|
| 127 |
-
# pure-minimal: 自动适应终端配色,无emoji,
|
| 128 |
# 左侧: user@host dir
|
| 129 |
-
# 右侧:
|
| 130 |
|
| 131 |
-
#
|
| 132 |
local user_color='%F{green}'
|
| 133 |
-
|
| 134 |
-
user_color='%F{red}'
|
| 135 |
-
fi
|
| 136 |
|
| 137 |
-
#
|
| 138 |
-
|
| 139 |
-
PROMPT='${user_color}%n@%m%f %F{cyan}%~%f %# '
|
| 140 |
|
| 141 |
-
#
|
| 142 |
-
|
| 143 |
|
| 144 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 145 |
PROMPT2='%F{yellow}...%f %# '
|
| 146 |
|
| 147 |
-
# 终端标题
|
| 148 |
precmd() { print -Pn "\e]0;%n@%m: %~\a" }
|
| 149 |
THEME
|
| 150 |
|
| 151 |
RUN cat > /root/.zshrc <<'EOF'
|
| 152 |
-
# Oh My Zsh 配置
|
| 153 |
export ZSH="$HOME/.oh-my-zsh"
|
| 154 |
-
|
| 155 |
-
# 禁用自动更新提示
|
| 156 |
zstyle ':omz:update' mode disabled
|
| 157 |
export ZSH_DISABLE_COMPFIX=true
|
| 158 |
|
| 159 |
-
# 主题
|
| 160 |
ZSH_THEME="pure-minimal"
|
| 161 |
|
| 162 |
-
# 插件
|
| 163 |
plugins=(
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
)
|
| 171 |
|
| 172 |
source "$ZSH/oh-my-zsh.sh"
|
|
@@ -188,13 +106,15 @@ alias pip='pip3'
|
|
| 188 |
alias zshconfig='nano ~/.zshrc'
|
| 189 |
alias cls='clear'
|
| 190 |
alias reload='source ~/.zshrc'
|
|
|
|
|
|
|
| 191 |
|
| 192 |
# 自动补全优化
|
| 193 |
autoload -Uz compinit
|
| 194 |
compinit -C
|
| 195 |
|
| 196 |
-
# zsh-autosuggestions
|
| 197 |
-
bindkey '^ ' autosuggest-accept
|
| 198 |
EOF
|
| 199 |
|
| 200 |
# ------------------------------------------------------------
|
|
@@ -210,18 +130,17 @@ EOF
|
|
| 210 |
|
| 211 |
RUN cat > /root/.local/share/code-server/User/settings.json <<'EOF'
|
| 212 |
{
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
}
|
| 225 |
}
|
| 226 |
EOF
|
| 227 |
|
|
@@ -244,50 +163,47 @@ set -euo pipefail
|
|
| 244 |
export HOME="${HOME:-/root}"
|
| 245 |
export PORT="${PORT:-7860}"
|
| 246 |
|
| 247 |
-
# 尝试启动 Docker 守护进程(HF Spaces 可能不支持,但不影响主服务)
|
| 248 |
if command -v dockerd >/dev/null 2>&1; then
|
| 249 |
-
if ! docker info >/dev/null 2>&1 2>/dev/null; then
|
| 250 |
-
mkdir -p /var/log /var/run /var/lib/docker
|
| 251 |
-
|
| 252 |
-
echo "[start] attempting to start dockerd..."
|
| 253 |
-
|
| 254 |
-
# 尝试多种启动方式
|
| 255 |
-
(
|
| 256 |
-
# 方式1: 直接启动(需要特权)
|
| 257 |
-
dockerd --host=unix:///var/run/docker.sock \
|
| 258 |
-
--data-root=/var/lib/docker \
|
| 259 |
-
--storage-driver=vfs \
|
| 260 |
-
2>/var/log/dockerd.log &
|
| 261 |
-
) 2>/dev/null || true
|
| 262 |
-
|
| 263 |
-
# 等待 docker 就绪(最多5秒)
|
| 264 |
-
for i in {1..10}; do
|
| 265 |
-
if docker info >/dev/null 2>&1 2>/dev/null; then
|
| 266 |
-
echo "[start] dockerd is ready"
|
| 267 |
-
break
|
| 268 |
-
fi
|
| 269 |
-
sleep 0.5
|
| 270 |
-
done
|
| 271 |
-
|
| 272 |
if ! docker info >/dev/null 2>&1 2>/dev/null; then
|
| 273 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 274 |
fi
|
| 275 |
-
fi
|
| 276 |
fi
|
| 277 |
|
| 278 |
mkdir -p /workspace
|
| 279 |
echo "[start] starting code-server on port ${PORT}"
|
| 280 |
-
|
| 281 |
exec code-server \
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
EOF
|
| 288 |
|
| 289 |
RUN chmod +x /usr/local/bin/start.sh
|
| 290 |
|
| 291 |
WORKDIR /workspace
|
| 292 |
EXPOSE 7860
|
| 293 |
-
CMD ["/usr/local/bin/start.sh"]
|
|
|
|
| 1 |
FROM ubuntu:22.04
|
|
|
|
| 2 |
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
| 3 |
|
| 4 |
ENV DEBIAN_FRONTEND=noninteractive \
|
|
|
|
| 14 |
ZSH=/root/.oh-my-zsh
|
| 15 |
|
| 16 |
# ------------------------------------------------------------
|
| 17 |
+
# 1) 基础系统 + 工具链 + Playwright/Chromium 依赖 + zsh
|
| 18 |
# ------------------------------------------------------------
|
| 19 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 20 |
ca-certificates curl wget git git-lfs sudo \
|
|
|
|
| 31 |
python3 python3-pip python3-venv python3-dev python-is-python3 \
|
| 32 |
libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
|
| 33 |
libncurses5-dev libncursesw5-dev libffi-dev liblzma-dev \
|
| 34 |
+
libxml2-dev libxslt1-dev libjpeg-dev libpng-dev libtiff-dev libopenjp2-7-dev libwebp-emoji \
|
| 35 |
+
iptables uidmap slir ------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
# 6) oh-my-zsh + 高级主题配置
|
| 37 |
+
# 左侧:用户名 + 路径(智能缩短)
|
| 38 |
+
# 右侧:时间
|
| 39 |
+
# 使用终端自动配色,无 emoji,无硬编码背景色
|
| 40 |
# ------------------------------------------------------------
|
| 41 |
RUN git clone --depth=1 https://github.com/ohmyzsh/ohmyzsh.git "${ZSH}" \
|
| 42 |
&& git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions "${ZSH}/custom/plugins/zsh-autosuggestions" \
|
| 43 |
&& git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting "${ZSH}/custom/plugins/zsh-syntax-highlighting"
|
| 44 |
|
|
|
|
| 45 |
RUN mkdir -p "${ZSH}/custom/themes" \
|
| 46 |
&& cat > "${ZSH}/custom/themes/pure-minimal.zsh-theme" <<'THEME'
|
| 47 |
+
# pure-minimal: 自动适应终端配色,无emoji,简洁高效
|
| 48 |
# 左侧: user@host dir
|
| 49 |
+
# 右侧: 时间
|
| 50 |
|
| 51 |
+
# 用户颜色:root红色,普通用户绿色
|
| 52 |
local user_color='%F{green}'
|
| 53 |
+
[[ $EUID -eq 0 ]] && user_color='%F{red}'
|
|
|
|
|
|
|
| 54 |
|
| 55 |
+
# 路径颜色:青色
|
| 56 |
+
local path_color='%F{cyan}'
|
|
|
|
| 57 |
|
| 58 |
+
# 时间颜色:灰色(240)
|
| 59 |
+
local time_color='%F{240}'
|
| 60 |
|
| 61 |
+
# 主提示符:用户名@主机名 当前目录
|
| 62 |
+
PROMPT='${user_color}%n@%m%f ${path_color}%~%f %# '
|
| 63 |
+
|
| 64 |
+
# 右侧时间:HH:MM:SS
|
| 65 |
+
RPROMPT='${time_color}%*%f'
|
| 66 |
+
|
| 67 |
+
# 多行提示符
|
| 68 |
PROMPT2='%F{yellow}...%f %# '
|
| 69 |
|
| 70 |
+
# 终端标题栏显示用户@主机:路径
|
| 71 |
precmd() { print -Pn "\e]0;%n@%m: %~\a" }
|
| 72 |
THEME
|
| 73 |
|
| 74 |
RUN cat > /root/.zshrc <<'EOF'
|
|
|
|
| 75 |
export ZSH="$HOME/.oh-my-zsh"
|
|
|
|
|
|
|
| 76 |
zstyle ':omz:update' mode disabled
|
| 77 |
export ZSH_DISABLE_COMPFIX=true
|
| 78 |
|
|
|
|
| 79 |
ZSH_THEME="pure-minimal"
|
| 80 |
|
|
|
|
| 81 |
plugins=(
|
| 82 |
+
git
|
| 83 |
+
docker
|
| 84 |
+
docker-compose
|
| 85 |
+
zsh-autosuggestions
|
| 86 |
+
zsh-syntax-highlighting
|
| 87 |
+
command-not-found
|
| 88 |
)
|
| 89 |
|
| 90 |
source "$ZSH/oh-my-zsh.sh"
|
|
|
|
| 106 |
alias zshconfig='nano ~/.zshrc'
|
| 107 |
alias cls='clear'
|
| 108 |
alias reload='source ~/.zshrc'
|
| 109 |
+
alias d='docker'
|
| 110 |
+
alias dc='docker compose'
|
| 111 |
|
| 112 |
# 自动补全优化
|
| 113 |
autoload -Uz compinit
|
| 114 |
compinit -C
|
| 115 |
|
| 116 |
+
# zsh-autosuggestions 快捷键:Ctrl+空格 接受建议
|
| 117 |
+
bindkey '^ ' autosuggest-accept
|
| 118 |
EOF
|
| 119 |
|
| 120 |
# ------------------------------------------------------------
|
|
|
|
| 130 |
|
| 131 |
RUN cat > /root/.local/share/code-server/User/settings.json <<'EOF'
|
| 132 |
{
|
| 133 |
+
"workbench.startupEditor": "none",
|
| 134 |
+
"telemetry.telemetryLevel": "off",
|
| 135 |
+
"update.mode": "none",
|
| 136 |
+
"extensions.autoCheckUpdates": false,
|
| 137 |
+
"extensions.autoUpdate": false,
|
| 138 |
+
"security.workspace.trust.enabled": false,
|
| 139 |
+
"terminal.integrated.defaultProfile.linux": "zsh",
|
| 140 |
+
"terminal.integrated.profiles.linux": {
|
| 141 |
+
"zsh": { "path": "/usr/bin/zsh" },
|
| 142 |
+
"bash": { "path": "/bin/bash" }
|
| 143 |
+
}
|
|
|
|
| 144 |
}
|
| 145 |
EOF
|
| 146 |
|
|
|
|
| 163 |
export HOME="${HOME:-/root}"
|
| 164 |
export PORT="${PORT:-7860}"
|
| 165 |
|
| 166 |
+
# 尝试启动 Docker 守护进程(HF Spaces 可能不支持特权,但不影响主服务)
|
| 167 |
if command -v dockerd >/dev/null 2>&1; then
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 168 |
if ! docker info >/dev/null 2>&1 2>/dev/null; then
|
| 169 |
+
mkdir -p /var/log /var/run /var/lib/docker
|
| 170 |
+
echo "[start] attempting to start dockerd..."
|
| 171 |
+
|
| 172 |
+
# 尝试启动 dockerd
|
| 173 |
+
(
|
| 174 |
+
dockerd --host=unix:///var/run/docker.sock \
|
| 175 |
+
--data-root=/var/lib/docker \
|
| 176 |
+
--storage-driver=vfs \
|
| 177 |
+
2>/var/log/dockerd.log &
|
| 178 |
+
) 2>/dev/null || true
|
| 179 |
+
|
| 180 |
+
# 等待 docker 就绪(最多5秒)
|
| 181 |
+
for i in {1..10}; do
|
| 182 |
+
if docker info >/dev/null 2>&1 2>/dev/null; then
|
| 183 |
+
echo "[start] dockerd is ready"
|
| 184 |
+
break
|
| 185 |
+
fi
|
| 186 |
+
sleep 0.5
|
| 187 |
+
done
|
| 188 |
+
|
| 189 |
+
if ! docker info >/dev/null 2>&1 2>/dev/null; then
|
| 190 |
+
echo "[start] dockerd not available (expected in restricted environments)"
|
| 191 |
+
fi
|
| 192 |
fi
|
|
|
|
| 193 |
fi
|
| 194 |
|
| 195 |
mkdir -p /workspace
|
| 196 |
echo "[start] starting code-server on port ${PORT}"
|
|
|
|
| 197 |
exec code-server \
|
| 198 |
+
--bind-addr "0.0.0.0:${PORT}" \
|
| 199 |
+
--auth none \
|
| 200 |
+
--disable-telemetry \
|
| 201 |
+
--disable-update-check \
|
| 202 |
+
/workspace
|
| 203 |
EOF
|
| 204 |
|
| 205 |
RUN chmod +x /usr/local/bin/start.sh
|
| 206 |
|
| 207 |
WORKDIR /workspace
|
| 208 |
EXPOSE 7860
|
| 209 |
+
CMD ["/usr/local/bin/start.sh"]
|