File size: 1,487 Bytes
2cae2a9
 
 
 
 
 
 
3165afb
b1df030
3165afb
2cae2a9
 
 
 
 
5f8adfe
5c62d38
 
5f8adfe
 
2cae2a9
5f8adfe
2cae2a9
bd9ccc9
2cae2a9
 
dd44428
2cae2a9
 
 
 
 
3165afb
2cae2a9
 
3165afb
2cae2a9
 
 
 
dd44428
2cae2a9
 
dd44428
2cae2a9
 
 
3165afb
dd44428
2cae2a9
3165afb
2cae2a9
96df329
2cae2a9
 
 
cd54a16
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
47
48
49
50
51
52
53
54
55
56
57
# And Node 20
FROM node:20-alpine

ARG DEBIAN_FRONTEND=noninteractive

RUN apk update

# for dev mode
RUN apk add git git-lfs procps htop vim nano

RUN apk add alpine-sdk pkgconfig

# For FFMPEG and gl concat
RUN apk add curl python3 python3-dev libx11-dev libsm-dev libxrender libxext-dev mesa-dev xvfb libxi-dev glew-dev

# For fonts, emojis etc
RUN apk add font-terminus font-noto font-noto-cjk font-noto-extra font-noto-emoji
RUN apk add font-arabic-misc font-inconsolata font-dejavu font-awesome 
RUN apk add ttf-opensans

# For Puppeteer
RUN apk add build-base gcompat udev chromium

RUN apk add --no-cache ffmpeg

# Set up a new user named "user" with user ID 1000
RUN adduser --disabled-password --uid 1001 user

# Switch to the "user" user
USER user

# Set home to the user's home directory
ENV  PATH=.local/bin:$PATH

# Set the working directory to the user's home directory
WORKDIR /app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY --chown=user package*.json /app

# make sure the .env is copied as well
COPY --chown=user .env /app

RUN ffmpeg -version

# Copy the current directory contents into the container at /app setting the owner to the user
COPY --chown=user . /app

RUN npm ci

EXPOSE 3000

# we can't use this (it time out)
# CMD [ "xvfb-run", "-s", "-ac -screen 0 1920x1080x24", "npm", "run", "start" ]
CMD [ "node_modules/pm2/bin/pm2-runtime", "ecosystem.config.js" ]