Update Dockerfile
Browse files- Dockerfile +35 -25
Dockerfile
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
-
#
|
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 |
-
#
|
13 |
-
RUN apt-get update &&
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
19 |
USER electerm
|
20 |
-
# RUN chown -R electerm:electerm /home/electerm
|
21 |
WORKDIR /app
|
22 |
-
|
23 |
-
#
|
24 |
-
|
|
|
|
|
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 |
-
|
|
|
|
|
37 |
|
|
|
38 |
USER electerm
|
39 |
WORKDIR /app/electerm-web
|
40 |
|
41 |
-
#
|
42 |
ENV NODE_ENV=production
|
43 |
|
44 |
# 声明容器内部使用的端口
|
45 |
EXPOSE 7860
|
46 |
|
47 |
-
#
|
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"]
|