ggcghh commited on
Commit
fd656af
·
verified ·
1 Parent(s): ea148b9

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +66 -0
Dockerfile ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ WORKDIR /app
11
+
12
+ RUN apk add --no-cache python3 py3-pip
13
+
14
+ RUN addgroup -S electerm && \
15
+ adduser -S -G electerm -h /home/electerm -s /bin/sh electerm && \
16
+ mkdir -p /home/electerm /app && \
17
+ chown -R electerm:electerm /home/electerm /app && \
18
+ chmod 755 /home/electerm
19
+
20
+ ENV VIRTUAL_ENV=/opt/venv
21
+ RUN python3 -m venv $VIRTUAL_ENV
22
+ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
23
+ RUN pip install --no-cache-dir huggingface_hub
24
+
25
+ RUN apk update && apk add --no-cache \
26
+ python3 \
27
+ git \
28
+ make \
29
+ g++ \
30
+ build-base && \
31
+ cd /app && \
32
+ git clone --depth 1 https://github.com/electerm/electerm-web.git && \
33
+ cd electerm-web && \
34
+ npm un @playwright/test chai playwright && \
35
+ npm i ipv6 && \
36
+ npm i && \
37
+ npm audit fix --force && \
38
+ npm run build && \
39
+ cp .sample.env .env && \
40
+ sed -i 's/HOST=.*/HOST=0.0.0.0/' .env && \
41
+ sed -i 's/ENABLE_AUTH=.*/ENABLE_AUTH=1/' .env && \
42
+ npm prune --production && \
43
+ npm cache clean --force && \
44
+ apk del build-base make g++ python3 git && \
45
+ rm -rf /var/cache/apk/* && \
46
+ mkdir -p /app/electerm-web/data/electerm_session_logs && \
47
+ chown -R electerm:electerm /app/electerm-web && \
48
+ chmod -R 777 /app/electerm-web/data
49
+
50
+ COPY sync_data.sh /
51
+ RUN chmod +x /sync_data.sh && \
52
+ chown electerm:electerm /sync_data.sh
53
+
54
+ USER electerm
55
+ WORKDIR /app/electerm-web
56
+
57
+ ENV NODE_ENV=production
58
+ ENV HOST=0.0.0.0
59
+ ENV ENABLE_AUTH=1
60
+ ENV SERVER_SECRET=your-secret-key
61
+ ENV SERVER_PASS=your-password
62
+
63
+ EXPOSE 5577
64
+
65
+ # Run your application with sync
66
+ CMD ["/sync_data.sh"]