I'm trying ompile archive node.js
executable into one executable using node-packer.
For my all packages, executables of node.js
are in {projectRoot}/node_modedules/.bin
The project structure as follow:
|- node_modules
| |-- .bin
| |--- executable with source code
|- compiled-bin
| |-- compiled executable
I wrote a shell script to do it.
Hope you can review it:
#!/bin/bash
for filepath in ./node_modules/.bin/*; do
export baseName="${filepath##*/}"
nodec $filepath --clean-tmpdir --make-args=-j10 --output=./compile-bin/$baseName.out
chmod +x ./compile-bin/$baseName.out
done
This is dockerfile, I used to run the above script in container:
FROM node:8.3.0 as package
WORKDIR /usr/src/app
COPY . /usr/src/app
# Install dependencies
RUN apt-get update
RUN apt-get install -y -q --no-install-recommends \
build-essential \
python \
make \
squashfs-tools \
gcc \
g++ \
clang-3.5 \
clang++-3.5
# Install nodec compiler
RUN curl -L http://enclose.io/nodec/nodec-linux-x64.gz | gunzip > /usr/local/bin/nodec
RUN chmod +x /usr/local/bin/nodec
# Install npm packages
RUN npm i --no-optional \
&& ls -lh
# Run build scripts
RUN mkdir compile-bin \
&& chmod +x ./build-script \
&& sync \
&& ./build-script