From 45cdad961511c9897ebd83a38a673305b8687ecd Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Wed, 26 Jun 2024 11:44:26 +0100 Subject: [PATCH] Hack around node_modules issue by moving them to a non-mounted location --- dev/Dockerfile.bindings | 6 +----- dev/docker-entrypoint.sh | 16 ++++++++++++++++ dev/generate-all-in-docker.sh | 2 +- package.json | 6 +++--- 4 files changed, 21 insertions(+), 9 deletions(-) create mode 100755 dev/docker-entrypoint.sh diff --git a/dev/Dockerfile.bindings b/dev/Dockerfile.bindings index 82b6cc06..c474c8a0 100644 --- a/dev/Dockerfile.bindings +++ b/dev/Dockerfile.bindings @@ -40,10 +40,6 @@ RUN asdf install && \ WORKDIR /src -# We're doing it to circumvent issues with Yarn not being able to write to -# node_modules under this root (in some circumstances, on CI only) -RUN chown -R asdf:asdf /src && chmod -R 0666 /src - -CMD ["bash", "-c", "./dev/proto-generate.sh && ./cmd/scip/tests/reprolang/generate-tree-sitter-parser.sh"] +CMD ["./dev/docker-entrypoint.sh"] diff --git a/dev/docker-entrypoint.sh b/dev/docker-entrypoint.sh new file mode 100755 index 00000000..fb1ccb64 --- /dev/null +++ b/dev/docker-entrypoint.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +set -xeuo pipefail + +# We're explicitly overriding the node_modules location used by Yarn because +# of issues when mounting node_modules inside the docker container AND running +# it under non-root user. + +echo "--modules-folder $HOME/my-node-modules" > .yarnrc + +export PATH="$PATH:$HOME/my-node-modules/.bin" +export NODE_PATH="$HOME/my-node-modules" + +./dev/proto-generate.sh + +./cmd/scip/tests/reprolang/generate-tree-sitter-parser.sh diff --git a/dev/generate-all-in-docker.sh b/dev/generate-all-in-docker.sh index 9e502fee..dabed1de 100755 --- a/dev/generate-all-in-docker.sh +++ b/dev/generate-all-in-docker.sh @@ -6,5 +6,5 @@ cd "$(dirname "${BASH_SOURCE[0]}")/.." # cd to repo root dir IMAGE_NAME=$(./dev/build-docker-environment.sh) -docker run -v $(pwd):/src $IMAGE_NAME +docker run -v $(pwd):/src -v /src/node_modules $IMAGE_NAME diff --git a/package.json b/package.json index 2e04d82e..bc5f656b 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,9 @@ "author": "SCIP authors", "license": "MIT", "scripts": { - "build": "./node_modules/.bin/tsc --build --force bindings/typescript", - "prettier": "./node_modules/.bin/prettier --write --list-different '**/*.{ts,js(on)?,md,yml}'", - "prettier-check": "./node_modules/.bin/prettier --check '**/*.{ts,js(on)?,md,yml}'" + "build": "tsc --build --force bindings/typescript", + "prettier": "prettier --write --list-different '**/*.{ts,js(on)?,md,yml}'", + "prettier-check": "prettier --check '**/*.{ts,js(on)?,md,yml}'" }, "workspaces": { "packages": [