fuliai commited on
Commit
aadad98
·
verified ·
1 Parent(s): 423a0fd

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +35 -25
Dockerfile CHANGED
@@ -1,6 +1,7 @@
1
- # Dockerfile.ubuntu
2
- # Start from the official Ubuntu-based node.js Docker image
3
  FROM node:18
 
 
4
  ARG BUILD_DATE
5
  LABEL build-date=$BUILD_DATE
6
  LABEL maintainer="ZHAO Xudong <[email protected]>"
@@ -9,40 +10,49 @@ LABEL url="https://github.com/electerm/electerm-web-docker"
9
  LABEL vendor="electerm"
10
  LABEL version="2.39.109"
11
 
12
- # Install the build tools necessary for node-gyp
13
- RUN apt-get update && apt-get install -y git python-is-python3 make build-essential g++ \
14
- # Create the electerm user and group
15
- && groupadd -r electerm && useradd -r -g electerm -d /home/electerm -s /bin/bash electerm \
16
- && mkdir /home/electerm \
17
- # Set the ownership and permissions of the home directory
18
- && chown -R electerm:electerm /home/electerm && chmod 755 /home/electerm
 
 
 
19
  USER electerm
20
- # RUN chown -R electerm:electerm /home/electerm
21
  WORKDIR /app
22
- RUN chown -R electerm:electerm /app \
23
- # Set the working directory in the Docker container
24
- && git clone --depth 1 https://github.com/electerm/electerm-web.git
 
 
25
  WORKDIR /app/electerm-web
26
- RUN npm uninstall @playwright/test chai playwright \
27
- && npm i \
28
- && npm run build \
29
- && cp .sample.env .env \
30
- && npm prune --production \
31
- && npm cache clean --force
32
- # && npm config delete registry
33
 
 
 
 
 
 
 
 
 
 
34
  USER root
35
- RUN apt-get remove -y git python-is-python3 make build-essential g++
36
- RUN apt-get clean && rm -rf /var/lib/apt/lists/*
 
 
37
 
 
38
  USER electerm
39
  WORKDIR /app/electerm-web
40
 
41
- # Set the environment variable
42
  ENV NODE_ENV=production
43
 
44
  # 声明容器内部使用的端口
45
  EXPOSE 7860
46
 
47
- # Run your application
48
- CMD ["node", "./src/app/app.js"]
 
1
+ # 使用官方的基于 Ubuntu 的 Node.js 18 镜像
 
2
  FROM node:18
3
+
4
+ # 设置构建时的参数和标签信息
5
  ARG BUILD_DATE
6
  LABEL build-date=$BUILD_DATE
7
  LABEL maintainer="ZHAO Xudong <[email protected]>"
 
10
  LABEL vendor="electerm"
11
  LABEL version="2.39.109"
12
 
13
+ # 安装构建工具,并创建 electerm 用户和组
14
+ RUN apt-get update && \
15
+ apt-get install -y --no-install-recommends git python-is-python3 make build-essential g++ && \
16
+ groupadd -r electerm && \
17
+ useradd -r -g electerm -d /home/electerm -s /bin/bash electerm && \
18
+ mkdir -p /home/electerm && \
19
+ chown -R electerm:electerm /home/electerm && \
20
+ chmod 755 /home/electerm
21
+
22
+ # 切换到 electerm 用户并设置工作目录
23
  USER electerm
 
24
  WORKDIR /app
25
+
26
+ # 克隆 electerm-web 仓库并设置权限
27
+ RUN git clone --depth 1 https://github.com/electerm/electerm-web.git /app/electerm-web && \
28
+ chown -R electerm:electerm /app/electerm-web
29
+
30
  WORKDIR /app/electerm-web
 
 
 
 
 
 
 
31
 
32
+ # 安装依赖并构建项目
33
+ RUN npm uninstall @playwright/test chai playwright && \
34
+ npm install && \
35
+ npm run build && \
36
+ cp .sample.env .env && \
37
+ npm prune --production && \
38
+ npm cache clean --force
39
+
40
+ # 清理不必要的构建依赖
41
  USER root
42
+ RUN apt-get remove -y git python-is-python3 make build-essential g++ && \
43
+ apt-get autoremove -y && \
44
+ apt-get clean && \
45
+ rm -rf /var/lib/apt/lists/*
46
 
47
+ # 切换回 electerm 用户并设置最终的工作目录
48
  USER electerm
49
  WORKDIR /app/electerm-web
50
 
51
+ # 设置环境变量为生产环境
52
  ENV NODE_ENV=production
53
 
54
  # 声明容器内部使用的端口
55
  EXPOSE 7860
56
 
57
+ # 启动应用
58
+ CMD ["node", "./src/app/app.js"]