-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathDockerfile.alpine
46 lines (40 loc) · 1.26 KB
/
Dockerfile.alpine
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
FROM node:18-alpine3.21
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.70.6"
WORKDIR /app
# Create user and set up directories
RUN addgroup -S electerm && \
adduser -S -G electerm -h /home/electerm -s /bin/sh electerm && \
mkdir -p /home/electerm /app && \
chown -R electerm:electerm /home/electerm /app && \
chmod 755 /home/electerm
# Install build dependencies and build application
RUN apk update && apk add --no-cache \
python3 \
git \
make \
g++ \
build-base && \
cd /app && \
git clone --depth 1 https://github.com/electerm/electerm-web.git && \
cd electerm-web && \
npm un @playwright/test chai playwright && \
npm i && \
npm run build && \
cp .sample.env .env && \
npm prune --production && \
npm cache clean --force && \
apk del build-base make g++ python3 git && \
rm -rf /var/cache/apk/* && \
chown -R electerm:electerm /app/electerm-web
USER electerm
WORKDIR /app/electerm-web
# Set the environment variable
ENV NODE_ENV=production
# Run your application
CMD ["node", "./src/app/app.js"]