exec / Dockerfile
aigems's picture
ok
aeb98bd
raw
history blame
1.32 kB
# 使用 Node.js 20 作为基础镜像
FROM node:20
# 设置工作目录
WORKDIR /app
# 安装必要的工具和依赖
RUN apt-get update && apt-get install -y \
build-essential \
zlib1g-dev \
libssl-dev \
wget \
&& rm -rf /var/lib/apt/lists/*
# 下载并安装最新版本的 Dropbear
RUN wget https://matt.ucc.asn.au/dropbear/dropbear-2024.85.tar.bz2 \
&& tar xjf dropbear-2024.85.tar.bz2 \
&& cd dropbear-2024.85 \
&& ./configure \
&& make \
&& make install \
&& cd .. \
&& rm -rf dropbear-2024.85*
# 复制 package.json 和 package-lock.json(如果存在)
COPY package*.json ./
# 安装依赖,包括 ssh2
RUN npm install
# 复制其余的源代码和公共文件
COPY . .
# 创建一个新用户,UID 为 1000
RUN if id 1000 >/dev/null 2>&1; then \
userdel -f $(id -nu 1000); \
fi \
&& useradd -u 1000 -m -s /bin/bash user \
&& echo 'user:password' | chpasswd
# 设置 Dropbear
RUN mkdir -p /etc/dropbear
# 更改目录所有权
RUN chown -R user:user /app /etc/dropbear
# 切换到新用户
USER user
# 暴露 Web 应用端口和 Dropbear SSH 端口
EXPOSE 7860 2202
# 启动脚本
COPY start.sh /start.sh
RUN chmod +x /start.sh
# 使用启动脚本
CMD ["/start.sh"]