From 925ebf08d4aa9144c7f9281c1b2ecd0723d1b95a Mon Sep 17 00:00:00 2001 From: junderw Date: Thu, 6 Jul 2023 18:05:21 -0700 Subject: [PATCH] Fix Docker build for using napi-rs --- backend/README.md | 2 ++ backend/package.json | 4 ++-- backend/rust-gbt/README.md | 2 ++ docker/backend/Dockerfile | 7 ++++++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/README.md b/backend/README.md index 256dcaa43..ddea54422 100644 --- a/backend/README.md +++ b/backend/README.md @@ -79,6 +79,8 @@ Query OK, 0 rows affected (0.00 sec) _Make sure to use Node.js 16.10 and npm 7._ +_The build process requires [Rust](https://www.rust-lang.org/tools/install) to be installed._ + Install dependencies with `npm` and build the backend: ``` diff --git a/backend/package.json b/backend/package.json index baed8be97..bc4771ebb 100644 --- a/backend/package.json +++ b/backend/package.json @@ -24,8 +24,8 @@ "tsc": "./node_modules/typescript/bin/tsc -p tsconfig.build.json", "build": "npm run build-rust && npm run tsc && npm run create-resources", "create-resources": "cp ./src/tasks/price-feeds/mtgox-weekly.json ./dist/tasks && node dist/api/fetch-version.js", - "package": "npm run build && rm -rf package && mv dist package && mv node_modules package && npm run package-rm-build-deps", - "package-rm-build-deps": "(cd package/node_modules; rm -r typescript @typescript-eslint)", + "package": "npm run build && rm -rf package && mv dist package && mv node_modules package && mv rust-gbt package && npm run package-rm-build-deps", + "package-rm-build-deps": "(cd package/node_modules; rm -r typescript @typescript-eslint @napi-rs ../rust-gbt/target ../rust-gbt/node_modules ../rust-gbt/src)", "start": "node --max-old-space-size=2048 dist/index.js", "start-production": "node --max-old-space-size=16384 dist/index.js", "reindex-updated-pools": "npm run start-production --update-pools", diff --git a/backend/rust-gbt/README.md b/backend/rust-gbt/README.md index c48b4a11f..c6b3cc21f 100644 --- a/backend/rust-gbt/README.md +++ b/backend/rust-gbt/README.md @@ -8,6 +8,8 @@ This project was bootstrapped by [napi](https://www.npmjs.com/package/@napi-rs/c Installing gbt requires a [supported version of Node and Rust](https://github.com/napi-rs/napi-rs#platform-support). +The build process also requires [Rust](https://www.rust-lang.org/tools/install) to be installed. + You can install the project with npm. In the project directory, run: ```sh diff --git a/docker/backend/Dockerfile b/docker/backend/Dockerfile index fd5044c0f..386e0d59d 100644 --- a/docker/backend/Dockerfile +++ b/docker/backend/Dockerfile @@ -7,7 +7,12 @@ WORKDIR /build COPY . . RUN apt-get update -RUN apt-get install -y build-essential python3 pkg-config +RUN apt-get install -y build-essential python3 pkg-config curl + +# Install Rust via rustup +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable +ENV PATH="/root/.cargo/bin:$PATH" + RUN npm install --omit=dev --omit=optional RUN npm run package