kpinquan commited on
Commit
7998a92
·
verified ·
1 Parent(s): cc5f95a

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +70 -0
Dockerfile ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:20-alpine3.21
2
+ ARG BUILD_DATE
3
+ LABEL build-date=$BUILD_DATE
4
+ LABEL maintainer="ZHAO Xudong <[email protected]>"
5
+ LABEL description="This is Docker image for electerm-web"
6
+ LABEL url="https://github.com/electerm/electerm-web-docker"
7
+ LABEL vendor="electerm"
8
+ LABEL version="2.60.56"
9
+
10
+ ENV CF_TOKEN=your_token
11
+
12
+ WORKDIR /app
13
+
14
+ RUN apk add --no-cache python3 py3-pip curl
15
+ COPY --from=cloudflare/cloudflared:latest /usr/local/bin/cloudflared /usr/local/bin/cloudflared
16
+ RUN chmod +x /usr/local/bin/cloudflared
17
+
18
+ RUN addgroup -S electerm && \
19
+ adduser -S -G electerm -h /home/electerm -s /bin/sh electerm && \
20
+ mkdir -p /home/electerm /app && \
21
+ chown -R electerm:electerm /home/electerm /app && \
22
+ chmod 755 /home/electerm
23
+
24
+ ENV VIRTUAL_ENV=/opt/venv
25
+ RUN python3 -m venv $VIRTUAL_ENV
26
+ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
27
+ RUN pip install --no-cache-dir huggingface_hub
28
+
29
+ RUN apk update && apk add --no-cache \
30
+ python3 \
31
+ git \
32
+ make \
33
+ g++ \
34
+ build-base && \
35
+ cd /app && \
36
+ git clone --depth 1 https://github.com/electerm/electerm-web.git && \
37
+ cd electerm-web && \
38
+ npm un @playwright/test chai playwright && \
39
+ npm i ipv6 && \
40
+ npm i && \
41
+ npm audit fix --force && \
42
+ npm run build && \
43
+ cp .sample.env .env && \
44
+ sed -i 's/HOST=.*/HOST=0.0.0.0/' .env && \
45
+ sed -i 's/ENABLE_AUTH=.*/ENABLE_AUTH=1/' .env && \
46
+ npm prune --production && \
47
+ npm cache clean --force && \
48
+ apk del build-base make g++ python3 git && \
49
+ rm -rf /var/cache/apk/* && \
50
+ mkdir -p /app/electerm-web/data/electerm_session_logs && \
51
+ chown -R electerm:electerm /app/electerm-web && \
52
+ chmod -R 777 /app/electerm-web/data
53
+
54
+ COPY sync_data.sh /
55
+ RUN chmod +x /sync_data.sh && \
56
+ chown electerm:electerm /sync_data.sh
57
+
58
+ USER electerm
59
+ WORKDIR /app/electerm-web
60
+
61
+ ENV NODE_ENV=production
62
+ ENV HOST=0.0.0.0
63
+ ENV ENABLE_AUTH=1
64
+ ENV SERVER_SECRET=your-secret-key
65
+ ENV SERVER_PASS=your-password
66
+
67
+ EXPOSE 5577
68
+
69
+ CMD cloudflared tunnel --no-autoupdate run --token $CF_TOKEN & \
70
+ /sync_data.sh