generated from actions/typescript-action
-
Notifications
You must be signed in to change notification settings - Fork 88
Open
Description
It seems like envvars added by features and via the action's env: option aren't passed to docker run. VSCode does pass them to docker run. This is important for shell init scripts that expect the envvars to exist when the container is started.
Example of VSCode's behavior:
docker run --sig-proxy=false -a STDOUT -a STDERR \
`# ...` \
-e LANG=en_US.UTF-8 \
-e NVIDIA_DISABLE_REQUIRE=true \
-e CC=gcc \
-e CXX=g++ \
-e CUDAHOSTCXX=g++ \
-e PYTHON_VERSION=3.13 \
--entrypoint /bin/sh vsc-devcontainers-954e198c667c39268cc299cf82b04e5e1818c554baccfa2555269604372fc153-uid \
-c echo Container starteddevcontainers/ci behavior:
docker run --sig-proxy=false -a STDOUT -a STDERR \
`# ...` \
-e LANG=en_US.UTF-8 \
-e NVIDIA_DISABLE_REQUIRE=true \
-e PYTHON_VERSION=3.13 \
--entrypoint /bin/sh vsc-devcontainers-4ec525fa91aa7d1bf05e336d30063cc11430f50413ea10c3c0d37f8fe16cb41b-uid \
-c echo Container startedDigging into the difference between their devcontainer up commands, I see VSCode isn't using --remote-env anywhere:
devcontainer up \
--user-data-folder /home/ptaylor/.config/Code/User/globalStorage/ms-vscode-remote.remote-containers/data \
--container-session-data-folder /tmp/devcontainers-5417b12b-bcd8-4a49-ab65-556b2e796a371751917899255 \
--workspace-folder /home/ptaylor/dev/rapids/devcontainers \
--workspace-mount-consistency cached \
--gpu-availability detect \
--id-label devcontainer.local_folder=/home/ptaylor/dev/rapids/devcontainers \
--id-label devcontainer.config_file=/home/ptaylor/dev/rapids/devcontainers/.devcontainer/cuda12.9-pip/devcontainer.json \
--log-level debug \
--log-format json \
--config /home/ptaylor/dev/rapids/devcontainers/.devcontainer/cuda12.9-pip/devcontainer.json \
--default-user-env-probe loginInteractiveShell \
--mount type=volume,source=vscode,target=/vscode,external=true \
--skip-post-create \
--update-remote-user-uid-default on \
--mount-workspace-git-root \
--include-configuration \
--include-merged-configurationHowever the devcontainers/ci action defines all the the envvars with --remote-env:
devcontainer up \
--workspace-folder /home/runner/_work/devcontainers/devcontainers \
--remote-env GITHUB_OUTPUT=/mnt/github/output \
--remote-env GITHUB_ENV=/mnt/github/env \
--remote-env GITHUB_PATH=/mnt/github/path \
--remote-env GITHUB_STEP_SUMMARY=/mnt/github/step-summary \
--config /home/runner/_work/devcontainers/devcontainers/.devcontainer/cuda12.9-conda/devcontainer.json \
--mount type=bind,source=/home/runner/_work/_temp/_runner_file_commands/set_output_fe6df713-9b89-4697-b75c-89f6f821d7dd,target=/mnt/github/output \
--mount type=bind,source=/home/runner/_work/_temp/_runner_file_commands/set_env_fe6df713-9b89-4697-b75c-89f6f821d7dd,target=/mnt/github/env \
--mount type=bind,source=/home/runner/_work/_temp/_runner_file_commands/add_path_fe6df713-9b89-4697-b75c-89f6f821d7dd,target=/mnt/github/path \
--mount type=bind,source=/home/runner/_work/_temp/_runner_file_commands/step_summary_fe6df713-9b89-4697-b75c-89f6f821d7dd,target=/mnt/github/step-summary
What do --include-configuration and/or --include-merged-configuration do? Would adding them fix this behavior in the devcontainers/ci action?
Metadata
Metadata
Assignees
Labels
No labels