You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							1.5 KiB
						
					
					
				| # 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
 | |
| 
 |