VSCode выдает ошибку при установке переменной окружения PATH в devcontainer. json - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть следующий файл devcontainer.json в проекте.

При попытке открыть VSCode в контейнере происходит сбой. Контейнер успешно создается, но при запуске запускаются следующие журналы. Когда я удаляю конфигурацию переменной среды, контейнер запускается и продолжает нормально работать.

Я следовал примеру для настройки переменных среды внутри контейнера dev, согласно документации кода Visual Studio для Advanced Container Конфигурация .

Вопрос : Как правильно настроить переменную среды PATH в моем файле devcontainer.json?

devcontainer. json

{
    "name": "Ubuntu 18.04 & Git",
    "dockerFile": "Dockerfile",
    "settings": { 
        "terminal.integrated.shell.linux": "/bin/bash"
    },
    "containerEnv": {
        "PATH": "${containerEnv:PATH}:/root/.customfolder/bin/"
    }
}

Журналы

6499 ms] Successfully built 096d41dceada
[6503 ms] Successfully tagged vsc-asdf-73cee28d5205fdd4a6063fc596248885:latest
[6506 ms] Start: Run: git rev-parse --show-toplevel
[6533 ms] Start: Starting container
[6533 ms] Start: Run: docker run -a STDOUT -a STDERR --mount type=bind,source=/Users/username/git/asdf,target=/workspaces/asdf,consistency=cached --mount source=/Users/username/.aws/credentials,target=/root/.aws/credentials,type=bind -l vsch.quality=stable -l vsch.remote.devPort=0 -l vsch.local.folder=/Users/username/git/asdf -e PATH=${containerEnv:PATH}:/root/.customfolder/bin/ --entrypoint /bin/sh vsc-pulumi-73cee28d5205fdd4a6063fc596248885 -c echo Container started ; while sleep 1; do :; done
[6852 ms] /bin/sh: 1: sleep: not found
[6852 ms] Container started
[6873 ms] Start: Inspecting container
[6879 ms] Start: Run in container: uname -m
[7031 ms] Start: Run in container: cat /etc/passwd
[7035 ms] Shell server terminated (code: 1, signal: null)

Error response from daemon: Container 8e0f6eeb22c358b0dfd8f1c1410c10b382ea66aa432e7e400a4564671619046f is not running

An error occurred setting up the container

Ошибка произошла настройка контейнера

Среда

  • MacOS Catalina
  • Docker Рабочий стол 2.2.0.0
  • Microsoft Visual Studio Код 1.42 .0
  • Расширение VSCode Remote-Containers 0.101.0

1 Ответ

1 голос
/ 10 февраля 2020

Вы можете изменить свойство с containerEnv на remoteEnv для решения проблемы.

Только свойство remoteEnv поддерживает ссылки на существующие контейнеры env vars. Свойство containerEnv похоже на -e для CLI Docker и поэтому оценивается до создания контейнера. Это в основном полезно, когда сам ваш Dockerfile зависит от того, какие определенные env-переменные установлены (хотя вы можете изменить PATH внутри вашего Dockerfile, если хотите).

Для всего остального, remoteEnv - это путь к go поскольку VS Code и все подпроцессы, такие как терминалы, используют его. Поскольку это оценивается после создания контейнера, вы можете обновить путь, как показано в примерах.

"remoteEnv": {
    "PATH": "${containerEnv:PATH}:/some/other/path",
    "MY_REMOTE_VARIABLE": "some-other-value-here",
    "MY_REMOTE_VARIABLE2": "${localEnv:SOME_LOCAL_VAR}"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...