forked from frangoteam/FUXA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
54 lines (38 loc) · 1.36 KB
/
Dockerfile
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
FROM node:18-bookworm
ARG NODE_SNAP=false
RUN apt-get update && apt-get install -y dos2unix
# Change working directory
WORKDIR /usr/src/app
# Clone FUXA repository
RUN git clone https://github.com/frangoteam/FUXA.git
# Install build dependencies for node-odbc
RUN apt-get update && apt-get install -y build-essential unixodbc unixodbc-dev
# Convert the script to Unix format and make it executable
RUN dos2unix FUXA/odbc/install_odbc_drivers.sh && chmod +x FUXA/odbc/install_odbc_drivers.sh
WORKDIR /usr/src/app/FUXA/odbc
RUN ./install_odbc_drivers.sh
# Change working directory
WORKDIR /usr/src/app
# Copy odbcinst.ini to /etc
RUN cp FUXA/odbc/odbcinst.ini /etc/odbcinst.ini
# Install Fuxa server
WORKDIR /usr/src/app/FUXA/server
RUN npm install
# Install options snap7
RUN if [ "$NODE_SNAP" = "true" ]; then \
npm install node-snap7; \
fi
# Workaround for sqlite3 https://stackoverflow.com/questions/71894884/sqlite3-err-dlopen-failed-version-glibc-2-29-not-found
RUN apt-get update && apt-get install -y sqlite3 libsqlite3-dev && \
apt-get autoremove -yqq --purge && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
npm install --build-from-source --sqlite=/usr/bin sqlite3
# Add project files
ADD . /usr/src/app/FUXA
# Set working directory
WORKDIR /usr/src/app/FUXA/server
# Expose port
EXPOSE 1881
# Start the server
CMD [ "npm", "start" ]