Я использую расширение Visual Studio Code Remote - Containers с настроенным DockerFile. Он основан на https://github.com/microsoft/vscode-dev-containers/blob/master/containers/python-3/.devcontainer/Dockerfile, но использует другой базовый образ и не пытается выполнить установку по конвейеру из файла requirements.txt.
Когда я создаю контейнер в vscode, когда для PostCreateCommand установлено значение «python --version», в выводе терминала контейнеров разработчика появляются следующие ошибки:
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 на следующие значения, которые все вызывают одну и ту же ошибку «не найден»:
pip --version conda --version
Когда контейнер запущен, я могу успешно использовать 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, установленную в той среде, которая активна в данный момент.