File size: 1,705 Bytes
aadad98
3acedb7
aadad98
 
51a147c
 
 
 
 
 
 
 
aadad98
 
 
 
 
 
 
 
 
 
51a147c
 
aadad98
0996b08
aadad98
848809c
aadad98
 
51a147c
 
aadad98
 
 
 
 
 
 
 
 
51a147c
aadad98
 
 
 
51a147c
aadad98
51a147c
 
 
1c6b25a
 
ca86861
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
46
47
48
49
50
51
52
53
54
55
# 使用官方的基于 Ubuntu 的 Node.js 18 镜像
FROM node:20

# 设置构建时的参数和标签信息
ARG BUILD_DATE
LABEL build-date=$BUILD_DATE
LABEL maintainer="ZHAO Xudong <[email protected]>"
LABEL description="This is Docker image for electerm-web"
LABEL url="https://github.com/electerm/electerm-web-docker"
LABEL vendor="electerm"
LABEL version="2.39.109"

# 安装构建工具,并创建 electerm 用户和组
RUN apt-get update && \
    apt-get install -y --no-install-recommends git python-is-python3 make build-essential g++ && \
    groupadd -r electerm && \
    useradd -r -g electerm -d /home/electerm -s /bin/bash electerm && \
    mkdir -p /home/electerm && \
    chown -R electerm:electerm /home/electerm && \
    chmod 755 /home/electerm

# 切换到 electerm 用户并设置工作目录
USER electerm
WORKDIR /app

# 克隆 electerm-web 仓库,创建目录并设置权限
RUN git clone --depth 1 https://github.com/electerm/electerm-web.git /app/electerm-web && \
    mkdir -p /app/electerm-web/data/electerm_session_logs && \
    chown -R electerm:electerm /app/electerm-web

WORKDIR /app/electerm-web

# 安装依赖并构建项目
RUN npm uninstall @playwright/test chai playwright && \
    npm install && \
    npm run build && \
    cp .sample.env .env && \
    npm prune --production && \
    npm cache clean --force

# 清理不必要的构建依赖
USER root
RUN apt-get remove -y git python-is-python3 make build-essential g++ && \
    apt-get autoremove -y && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 切换回 electerm 用户并设置最终的工作目录
USER electerm
WORKDIR /app/electerm-web

# 启动应用
CMD ["node", "./src/app/app.js"]