FROM node:20-slim RUN echo "RUNNING FIPS BUILD" # Install build dependencies including python3 (required for pkcs11js and partially TDS driver) RUN apt-get update && apt-get install -y \ build-essential \ autoconf \ automake \ git \ libtool \ libssl-dev \ python3 \ make \ g++ \ openssh-client \ curl \ pkg-config \ perl \ wget # Install dependencies for TDS driver (required for SAP ASE dynamic secrets) RUN apt-get install -y \ unixodbc \ unixodbc-dev \ freetds-dev \ freetds-bin \ tdsodbc RUN printf "[FreeTDS]\nDescription = FreeTDS Driver\nDriver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so\nSetup = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so\nFileUsage = 1\n" > /etc/odbcinst.ini WORKDIR /root # Install pkcs11-tool RUN apt-get install -y opensc WORKDIR /openssl-build RUN wget https://www.openssl.org/source/openssl-3.1.2.tar.gz \ && tar -xf openssl-3.1.2.tar.gz \ && cd openssl-3.1.2 \ && ./Configure enable-fips \ && make \ && make install_fips # ? App setup # Install Infisical CLI RUN curl -1sLf 'https://artifacts-cli.infisical.com/setup.deb.sh' | bash && \ apt-get update && \ apt-get install -y infisical=0.41.2 WORKDIR /app COPY package.json package.json COPY package-lock.json package-lock.json RUN npm install COPY . . ENV HOST=0.0.0.0 ENV OPENSSL_CONF=/app/nodejs.cnf ENV OPENSSL_MODULES=/usr/local/lib/ossl-modules ENV NODE_OPTIONS=--force-fips ENV FIPS_ENABLED=true CMD ["npm", "run", "dev:docker"]