summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTobias Järvelöv <tobias.jarvelov@mullvad.net>2026-02-09 15:41:37 +0100
committerTobias Järvelöv <tobias.jarvelov@mullvad.net>2026-02-09 15:41:37 +0100
commit63733e69a445d8b4d7525f7062da8a7b9d4b9598 (patch)
treeb4ee56d8ae5b00f870e3db4f4e1cd72888cfc5f5
parentfe29d1b160814be4d5d94640c31d96c37e24d6c9 (diff)
downloadmullvadvpn-replace-gprc-tools-npm-package-with-a-linux-container-des-2826.tar.xz
mullvadvpn-replace-gprc-tools-npm-package-with-a-linux-container-des-2826.zip
-rw-r--r--desktop/packages/management-interface/Dockerfile23
-rw-r--r--desktop/packages/management-interface/management-interface-container-image.txt2
-rw-r--r--desktop/packages/management-interface/package.json3
-rw-r--r--desktop/packages/management-interface/scripts/container-build-image.sh4
-rw-r--r--desktop/packages/management-interface/scripts/container-run-generate-bindings.sh10
-rw-r--r--desktop/packages/management-interface/scripts/container/generate-bindings.sh2
6 files changed, 17 insertions, 27 deletions
diff --git a/desktop/packages/management-interface/Dockerfile b/desktop/packages/management-interface/Dockerfile
index 683699caee..cf50cb6be9 100644
--- a/desktop/packages/management-interface/Dockerfile
+++ b/desktop/packages/management-interface/Dockerfile
@@ -18,30 +18,23 @@ RUN chmod +x /build/build-grpc-tools-binaries.sh && \
# Install build dependencies required for building grpc-tools (grpc-node)
RUN apt-get update -y && \
apt-get install -y --mark-auto build-essential cmake curl file g++ git jq && \
- rm -rf /var/lib/apt/lists/*
-
+ rm -rf /var/lib/apt/lists/* && \
# Install npm dependencies with volta
-RUN curl https://get.volta.sh | bash && \
+ curl https://get.volta.sh | bash && \
# Source bashrc to read the paths added by volta
- . /root/.bashrc && \
+ . ~/.bashrc && \
# Install node/npm
volta install node && \
# Install node dependencies
- npm install
-
+ npm install && \
# Clone grpc-node repo
-RUN git clone --recursive https://github.com/grpc/grpc-node
-
+ git clone --recursive https://github.com/grpc/grpc-node && \
# Copy our custom build script to the grpc-tools subdirectory
-RUN mv /build/build-grpc-tools-binaries.sh /build/grpc-node/packages/grpc-tools
-
+ mv /build/build-grpc-tools-binaries.sh /build/grpc-node/packages/grpc-tools && \
# Checkout a pre-defined version of the repo
-RUN cd /build/grpc-node/packages/grpc-tools && git checkout ccd29b27d28ce8937f8250f72e5e6027ed5af09a && \
+ cd /build/grpc-node/packages/grpc-tools && git checkout ccd29b27d28ce8937f8250f72e5e6027ed5af09a && \
# Build the grpc-tools binaries used to generate JS bindings
- ./build-grpc-tools-binaries.sh
-
- # Clean up
- RUN rm /build/package.json && \
+ ./build-grpc-tools-binaries.sh && \
# Trim image size by removing dependencies
apt-get autoremove -y
diff --git a/desktop/packages/management-interface/management-interface-container-image.txt b/desktop/packages/management-interface/management-interface-container-image.txt
index e4a1881d4e..73fea225c7 100644
--- a/desktop/packages/management-interface/management-interface-container-image.txt
+++ b/desktop/packages/management-interface/management-interface-container-image.txt
@@ -1 +1 @@
-management-interface-container-image-b719f41acc
+management-interface-container-image-fe29d1b160
diff --git a/desktop/packages/management-interface/package.json b/desktop/packages/management-interface/package.json
index 4946e8d3eb..e3269f53bf 100644
--- a/desktop/packages/management-interface/package.json
+++ b/desktop/packages/management-interface/package.json
@@ -10,8 +10,5 @@
},
"peerDependencies": {
"google-protobuf": "*"
- },
- "scripts": {
- "build": "tsc"
}
}
diff --git a/desktop/packages/management-interface/scripts/container-build-image.sh b/desktop/packages/management-interface/scripts/container-build-image.sh
index 7b0505396c..cfa9c4db7a 100644
--- a/desktop/packages/management-interface/scripts/container-build-image.sh
+++ b/desktop/packages/management-interface/scripts/container-build-image.sh
@@ -10,8 +10,8 @@ set -eu
CONTAINER_RUNNER=${CONTAINER_RUNNER:-"docker"}
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-CONTAINER_DIR="$SCRIPT_DIR/.."
-IMAGE_NAME=$(cat "$SCRIPT_DIR/../management-interface-container-image.txt")
+CONTAINER_DIR="$( cd "$SCRIPT_DIR/.." && pwd )"
+IMAGE_NAME=$( cat "$SCRIPT_DIR/../management-interface-container-image.txt" )
cd "$SCRIPT_DIR"
diff --git a/desktop/packages/management-interface/scripts/container-run-generate-bindings.sh b/desktop/packages/management-interface/scripts/container-run-generate-bindings.sh
index 47599cf8c9..c4cbd8898f 100644
--- a/desktop/packages/management-interface/scripts/container-run-generate-bindings.sh
+++ b/desktop/packages/management-interface/scripts/container-run-generate-bindings.sh
@@ -11,8 +11,8 @@ CONTAINER_RUNNER=${CONTAINER_RUNNER:-"docker"}
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROTO_DIR="$( cd "$SCRIPT_DIR/../../../../mullvad-management-interface/proto" && pwd )"
-IMAGE_NAME=$(cat "$SCRIPT_DIR/../management-interface-container-image.txt")
-OUT_DIR="$SCRIPT_DIR/dist"
+IMAGE_NAME=$( cat "$SCRIPT_DIR/../management-interface-container-image.txt" )
+OUT_DIR="$SCRIPT_DIR/../dist"
MOUNT_TARGET_BASE="/build"
cd "$SCRIPT_DIR"
@@ -22,6 +22,6 @@ mkdir -p $OUT_DIR
# TODO: Verify that container exists or exit with error message
exec "$CONTAINER_RUNNER" run --rm -it \
- -v "/$PROTO_DIR:$MOUNT_TARGET_BASE/proto:Z" \
- -v "/$OUT_DIR:$MOUNT_TARGET_BASE/dist:Z" \
- $IMAGE_NAME ls -la "/build/generate-bindings.sh" "$@"
+ -v "$PROTO_DIR:$MOUNT_TARGET_BASE/proto:Z" \
+ -v "$OUT_DIR:$MOUNT_TARGET_BASE/dist:Z" \
+ "$IMAGE_NAME" bash "/build/generate-bindings.sh" "$@"
diff --git a/desktop/packages/management-interface/scripts/container/generate-bindings.sh b/desktop/packages/management-interface/scripts/container/generate-bindings.sh
index afbf5cddba..cf0c6d2feb 100644
--- a/desktop/packages/management-interface/scripts/container/generate-bindings.sh
+++ b/desktop/packages/management-interface/scripts/container/generate-bindings.sh
@@ -11,7 +11,7 @@
set -eu
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-NODE_MODULES_BIN_DIR="$(cd $SCRIPT_DIR/node_modules/.bin && pwd)"
+NODE_MODULES_BIN_DIR="$( cd $SCRIPT_DIR/node_modules/.bin && pwd )"
GRPC_TOOLS_NODE_PROTOC="$NODE_MODULES_BIN_DIR/grpc_tools_node_protoc"
TS_PROTOC_PLUGIN="$NODE_MODULES_BIN_DIR/protoc-gen-ts"