# Build nodejs dependencies # The node version here should match the version of the runtime image which is # specified in the base-image subdirectory in the project FROM resin/%%ARCH%%-node:6.5-slim WORKDIR /usr/src/app RUN apt-get update \ && apt-get install -y \ g++ \ libsqlite3-dev \ make \ python \ rsync \ wget \ && rm -rf /var/lib/apt/lists/ RUN mkdir -p rootfs-overlay && \ ln -s /lib rootfs-overlay/lib64 COPY package.json /usr/src/app/ # Install only the production modules RUN JOBS=MAX npm install --production --no-optional --unsafe-perm \ && npm dedupe COPY src /usr/src/app/src # Install devDependencies, build the coffeescript and then prune the deps RUN npm install --only=dev --no-optional --unsafe-perm \ && npm run lint \ && npm run build \ && npm prune --production \ && npm dedupe # Remove various uneeded filetypes in order to reduce space RUN find . -path '*/coverage/*' -o -path '*/test/*' -o -path '*/.nyc_output/*' \ -o -name '*.tar.*' -o -name '*.in' -o -name '*.cc' \ -o -name '*.c' -o -name '*.coffee' -o -name '*.eslintrc' \ -o -name '*.h' -o -name '*.html' -o -name '*.markdown' \ -o -name '*.md' -o -name '*.patch' -o -name '*.png' \ -o -name '*.yml' \ -delete \ && find . -type f -path '*/node_modules/sqlite3/deps*' -delete \ && find . -type f -path '*/node_modules/knex/build*' -delete # Create /var/run/resin for the gosuper to place its socket in RUN mkdir -p rootfs-overlay/var/run/resin COPY entry.sh run.sh package.json rootfs-overlay/usr/src/app/ COPY inittab rootfs-overlay/etc/inittab CMD rsync -a --delete node_modules src rootfs-overlay /build # -*- mode: dockerfile -*- # vi: set ft=dockerfile :