Я использую Visual Studio Code Remote - расширение контейнеров с настроенным DockerFile. Он основан на https://github.com/microsoft/vscode-dev-containers/blob/master/containers/python-3/.devcontainer/Dockerfile, но использует другой базовый образ и не пытается установить pip из файла needs.txt.
Когда я собираю контейнер в vscode с PostCreateCommand, установленным в «python --version», в выводе терминала dev-контейнеров появляются следующие ошибки:
Run: docker exec -w /workspaces/media-classifier dd5e552b4f113ecf74504cc6d3aed3ca1727b4a172645515392c4632b7c45b81 /bin/sh -c python --version
/bin/sh: 1: python: not found
postCreateCommand "python --version" failed.
Я попытался использовать одно и то же значение параметра для PostCreateCommand (python --version), используя как стандартный контейнер python3, так и контейнер anaconda python3, и они оба успешно вывели версию python.
Я также пытался установить для PostCreateCommand следующие значения, которые все выдают одинаковую ошибку «not found»:
pip - версия
Конда - Версия
Когда контейнер запущен, я успешно могу использовать python, pip и conda, поэтому они определенно установлены.
Dockerfile
FROM microsoft/cntk:2.6-cpu-python3.5
# Configure apt and install packages
RUN apt-get update \
&& apt-get -y install --no-install-recommends apt-utils 2>&1 \
#
# Verify git, process tools, lsb-release (common in install instructions for CLIs) installed
&& apt-get -y install git procps lsb-release \
# Clean up
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
devcontainer.json
{
"name": "CNTK Python3.5",
"context": "..",
"dockerFile": "Dockerfile",
// Uncomment the next line if you want to publish any ports.
// "appPort": [],
// Uncomment the next line to run commands after the container is created.
"postCreateCommand": "python --version",
"extensions": [
"ms-python.python",
"neuron.neuron-ipe"
],
"settings": {
"python.pythonPath": "/opt/conda/bin/python",
"python.linting.pylintEnabled": true,
"python.linting.enabled": true
}
}
Я ожидаю, что PostCreateCommand будет успешно выполнен и выведет версию Python, установленную в любой активной среде анаконды.