From 1f652fe364a2850a666ea17c9603ca00c3159f13 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 2 Jun 2025 17:44:22 +0200 Subject: [PATCH 1/7] :sparkles: Remove arm64 build of devenv Looks unused right now --- manage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manage.sh b/manage.sh index afd3fd201f..90428a8e30 100755 --- a/manage.sh +++ b/manage.sh @@ -34,7 +34,7 @@ function build-devenv { fi # docker build -t $DEVENV_IMGNAME:latest . - docker buildx build --platform linux/amd64,linux/arm64 --push -t $DEVENV_IMGNAME:latest .; + docker buildx build --platform linux/amd64 --push -t $DEVENV_IMGNAME:latest .; docker pull $DEVENV_IMGNAME:latest; popd; From 2b6a91819b8d83b418904a76447f5e557ff7953d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 2 Jun 2025 18:05:11 +0200 Subject: [PATCH 2/7] :sparkles: Reduce verbosity of frontend build script --- frontend/scripts/build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/scripts/build b/frontend/scripts/build index 46b5985faa..a58e15c33f 100755 --- a/frontend/scripts/build +++ b/frontend/scripts/build @@ -2,11 +2,9 @@ # NOTE: this script should be called from the parent directory to # properly work. -set -ex export INCLUDE_STORYBOOK=${BUILD_STORYBOOK:-no}; export INCLUDE_WASM=${BUILD_WASM:-yes}; - export CURRENT_VERSION=$1; export BUILD_DATE=$(date -R); export CURRENT_HASH=${CURRENT_HASH:-$(git rev-parse --short HEAD)}; @@ -17,6 +15,8 @@ export TS=$(date +%s); # performant code on macros (example: rumext) export NODE_ENV=production; +set -ex + corepack enable; corepack install || exit 1; yarn install || exit 1; From f067c86b02d93e0cfbd69641d81cf7307fceeca2 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 2 Jun 2025 19:10:20 +0200 Subject: [PATCH 3/7] :fire: Remove unnecesary env vars from bashrc (devenv) --- docker/devenv/files/bashrc | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker/devenv/files/bashrc b/docker/devenv/files/bashrc index c55b214c78..6dcc66f191 100644 --- a/docker/devenv/files/bashrc +++ b/docker/devenv/files/bashrc @@ -1,8 +1,5 @@ #!/usr/bin/env bash -export JAVA_OPTS=${JAVA_OPTS:-"-Xmx1000m -Xms200m"}; -EMSDK_QUIET=1 . /home/emsdk/emsdk_env.sh; - alias l='ls --color -GFlh' alias rm='rm -r' alias ls='ls --color -F' From 46f330fef308b07f8ab61d6f937a5e60b35f0b2e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 2 Jun 2025 19:10:48 +0200 Subject: [PATCH 4/7] :sparkles: Move several logic from init to entrypoint on devenv For make commands consistent independently if they are executed inside devenv or from manage.sh --- docker/devenv/files/entrypoint.sh | 8 ++++++++ docker/devenv/files/init.sh | 6 ------ frontend/scripts/build | 1 - 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/docker/devenv/files/entrypoint.sh b/docker/devenv/files/entrypoint.sh index 77486ebd6b..5726fda1e1 100755 --- a/docker/devenv/files/entrypoint.sh +++ b/docker/devenv/files/entrypoint.sh @@ -2,6 +2,14 @@ set -e +EMSDK_QUIET=1 . /home/emsdk/emsdk_env.sh; + usermod -u ${EXTERNAL_UID:-1000} penpot; +cp /root/.bashrc /home/penpot/.bashrc +cp /root/.vimrc /home/penpot/.vimrc +cp /root/.tmux.conf /home/penpot/.tmux.conf + +chown -R penpot:users /home/penpot + exec "$@" diff --git a/docker/devenv/files/init.sh b/docker/devenv/files/init.sh index 55dbfeeff8..2f809ebbb9 100755 --- a/docker/devenv/files/init.sh +++ b/docker/devenv/files/init.sh @@ -1,11 +1,5 @@ #!/usr/bin/env bash -cp /root/.bashrc /home/penpot/.bashrc -cp /root/.vimrc /home/penpot/.vimrc -cp /root/.tmux.conf /home/penpot/.tmux.conf -chown -R penpot:users /home/penpot -chown -R penpot:users /home/cargo; - set -e nginx tail -f /dev/null diff --git a/frontend/scripts/build b/frontend/scripts/build index a58e15c33f..b42d6923e3 100755 --- a/frontend/scripts/build +++ b/frontend/scripts/build @@ -2,7 +2,6 @@ # NOTE: this script should be called from the parent directory to # properly work. - export INCLUDE_STORYBOOK=${BUILD_STORYBOOK:-no}; export INCLUDE_WASM=${BUILD_WASM:-yes}; export CURRENT_VERSION=$1; From 0e4c535edcc5875bde526d7fb9bbfd4321c153f3 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 2 Jun 2025 19:11:55 +0200 Subject: [PATCH 5/7] :paperclip: Print current path on frontend scripts build script --- frontend/scripts/build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/scripts/build b/frontend/scripts/build index b42d6923e3..71ff300451 100755 --- a/frontend/scripts/build +++ b/frontend/scripts/build @@ -14,6 +14,9 @@ export TS=$(date +%s); # performant code on macros (example: rumext) export NODE_ENV=production; +echo "Current path:" +echo $PATH + set -ex corepack enable; From 0ec0917b6d577429148feb2ddb5d7059305de075 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 2 Jun 2025 19:13:20 +0200 Subject: [PATCH 6/7] :sparkles: Add isolated-shell to manage.sh Instead of attaching to an existing devenv, starts a new one. --- manage.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/manage.sh b/manage.sh index 90428a8e30..d89a4f3e77 100755 --- a/manage.sh +++ b/manage.sh @@ -104,6 +104,21 @@ function run-devenv-shell { penpot-devenv-main sudo -EH -u penpot bash; } +function run-devenv-isolated-shell { + docker volume create ${DEVENV_PNAME}_user_data; + docker run -ti --rm \ + --mount source=${DEVENV_PNAME}_user_data,type=volume,target=/home/penpot/ \ + --mount source=`pwd`,type=bind,target=/home/penpot/penpot \ + -e EXTERNAL_UID=$CURRENT_USER_ID \ + -e BUILD_STORYBOOK=$BUILD_STORYBOOK \ + -e BUILD_WASM=$BUILD_WASM \ + -e SHADOWCLJS_EXTRA_PARAMS=$SHADOWCLJS_EXTRA_PARAMS \ + -e JAVA_OPTS="$JAVA_OPTS" \ + -w /home/penpot/penpot/$1 \ + $DEVENV_IMGNAME:latest sudo -EH -u penpot bash +} + + function build { echo ">> build start: $1" local version=$(print-current-version); @@ -233,6 +248,7 @@ function usage { echo "- drop-devenv Remove the development oriented docker compose containers, volumes and clean images." echo "- run-devenv Attaches to the running devenv container and starts development environment" echo "- run-devenv-shell Attaches to the running devenv container and starts a bash shell." + echo "- isolated-shell Starts a bash shell in a new devenv container." echo "- log-devenv Show logs of the running devenv docker compose service." echo "" echo "- build-bundle Build all bundles (frontend, backend and exporter)." @@ -280,6 +296,11 @@ case $1 in run-devenv-shell) run-devenv-shell ${@:2} ;; + + isolated-shell) + run-devenv-isolated-shell ${@:2} + ;; + stop-devenv) stop-devenv ${@:2} ;; From 1909189ce06c18cdb9f7943bee19b3751bd7388a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 2 Jun 2025 22:29:39 +0200 Subject: [PATCH 7/7] :sparkles: Use different approach for setup cargo home --- docker/devenv/Dockerfile | 4 ++-- docker/devenv/files/entrypoint.sh | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docker/devenv/Dockerfile b/docker/devenv/Dockerfile index a7dea8c993..c36e75894d 100644 --- a/docker/devenv/Dockerfile +++ b/docker/devenv/Dockerfile @@ -260,10 +260,10 @@ RUN set -ex; \ mv /tmp/mc /usr/local/bin/; \ chmod +x /usr/local/bin/mc; -WORKDIR /home +WORKDIR /usr/local # Install Rust toolchain -ENV PATH=/home/cargo/bin:$PATH RUSTUP_HOME=/home/rustp CARGO_HOME=/home/cargo +ENV PATH=/usr/local/cargo/bin:$PATH RUSTUP_HOME=/usr/local/rustpo CARGO_HOME=/usr/local/cargo RUN set -eux; \ # Same steps as in Rust official Docker image https://github.com/rust-lang/docker-rust/blob/9f287282d513a84cb7c7f38f197838f15d37b6a9/1.81.0/bookworm/Dockerfile diff --git a/docker/devenv/files/entrypoint.sh b/docker/devenv/files/entrypoint.sh index 5726fda1e1..ba112dd61d 100755 --- a/docker/devenv/files/entrypoint.sh +++ b/docker/devenv/files/entrypoint.sh @@ -2,7 +2,7 @@ set -e -EMSDK_QUIET=1 . /home/emsdk/emsdk_env.sh; +EMSDK_QUIET=1 . /usr/local/emsdk/emsdk_env.sh; usermod -u ${EXTERNAL_UID:-1000} penpot; @@ -11,5 +11,9 @@ cp /root/.vimrc /home/penpot/.vimrc cp /root/.tmux.conf /home/penpot/.tmux.conf chown -R penpot:users /home/penpot +rsync -ar --chown=penpot:users /usr/local/cargo/ /home/penpot/.cargo/ + +export PATH="/home/penpot/.cargo/bin:$PATH" +export CARGO_HOME="/home/penpot/.cargo" exec "$@"