123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- # Usage:
- #
- # docker build -t bcryptjs-builder .
- # CONTAINER=$(docker create bcryptjs-builder)
- # # Then copy the artifact to your host:
- # docker cp "$CONTAINER:/usr/local/opt/bcrypt-js/prebuilds" .
- # docker rm "$CONTAINER"
- #
- # Use --platform to build cross-platform i.e. for ARM:
- #
- # docker build -t bcryptjs-builder --platform "linux/arm64/v8" .
- # CONTAINER=$docker create --platform "linux/arm64/v8" bcryptjs-builder)
- # # this copies the prebuilds/linux-arm artifacts
- # docker cp "$CONTAINER:/usr/local/opt/bcrypt-js/prebuilds" .
- # docker rm "$CONTAINER"
- ARG FROM_IMAGE=node:18-bullseye
- #ARG FROM_IMAGE=arm32v7/node:16-bullseye
- #ARG FROM_IMAGE=arm64v8/node:16-bullseye
- FROM ${FROM_IMAGE}
- ENV project bcrypt-js
- ENV DEBIAN_FRONTEND noninteractive
- ENV LC_ALL en_US.UTF-8
- ENV LANG ${LC_ALL}
- RUN echo "#log: ${project}: Setup system" \
- && set -x \
- && apt-get update -y \
- && apt-get install -y \
- build-essential \
- python3 \
- && apt-get clean \
- && update-alternatives --install /usr/local/bin/python python /usr/bin/python3 20 \
- && npm i -g prebuildify@5 node-gyp@9 \
- && sync
- ADD . /usr/local/opt/${project}
- WORKDIR /usr/local/opt/${project}
- RUN echo "#log: ${project}: Running build" \
- && set -x \
- && npm ci \
- && npm run build
- ARG RUN_TESTS=true
- ARG TEST_TIMEOUT_SECONDS=
- RUN if "${RUN_TESTS}"; then \
- echo "#log ${project}: Running tests" \
- && npm test; \
- else \
- echo "#log ${project}: Tests were skipped!"; \
- fi
- CMD /bin/bash -l
|