diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 04c024a3c5..b5b7d4c7f5 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -18,6 +18,8 @@ RUN apt-get update \ && apt-get install -y --no-install-recommends chromium gnupg2 \ && rm -rf /var/lib/apt/lists/* \ && corepack enable \ - && mkdir -p ${PNPM_HOME} /home/node/.pnpm-store \ - && chown -R node:node /home/node/.local /home/node/.pnpm-store + && mkdir -p ${PNPM_HOME} /home/node/.pnpm-store /commandhistory \ + && touch /commandhistory/.bash_history \ + && chown -R node:node /home/node/.local /home/node/.pnpm-store /commandhistory \ + && echo "export PROMPT_COMMAND='history -a' && export HISTFILE=/commandhistory/.bash_history" >> /home/node/.bashrc USER node diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6c61d55fdf..1fae7a9d74 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -52,11 +52,14 @@ "CHROME_BIN": "/usr/bin/chromium" }, - "mounts": ["source=alfresco-ng2-pnpm-store,target=/home/node/.pnpm-store,type=volume"], + "mounts": [ + "source=workspace-pnpm-store,target=/home/node/.pnpm-store,type=volume", + "source=workspace-bashhistory,target=/commandhistory,type=volume" + ], - "postCreateCommand": "pnpm install --frozen-lockfile", + "postCreateCommand": ".devcontainer/post-create.sh", - "postStartCommand": "if [ -f .git/signing.pub ]; then gpg --import .git/signing.pub; fi", + "postStartCommand": ".devcontainer/post-start.sh", "runArgs": ["--cap-drop=ALL", "--security-opt=no-new-privileges:true", "--pids-limit=512"] } diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh new file mode 100755 index 0000000000..08188cdf05 --- /dev/null +++ b/.devcontainer/post-create.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail + +if command -v sudo >/dev/null 2>&1 && sudo -n true >/dev/null 2>&1; then + sudo chown -R "$(whoami)": /commandhistory +fi + +pnpm install --frozen-lockfile diff --git a/.devcontainer/post-start.sh b/.devcontainer/post-start.sh new file mode 100755 index 0000000000..3722114759 --- /dev/null +++ b/.devcontainer/post-start.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [ -f .git/signing.pub ]; then + gpg --import .git/signing.pub +fi