Bug Report: cimg/python:x.y is unusable with venv caching
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza reproduciendo el fallo con la config.yml proporcionada y compara cimg/python:3.11.4 con la imagen cimg/python:3.11 en actualización continua. Después, inspecciona la definición de la imagen y cómo los entornos virtuales de Python conservan la ruta de su intérprete. Se considera terminado cuando el flujo de trabajo documentado de caché de venv siga funcionando después de que la imagen en actualización continua reciba una actualización de parche de Python.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
Caching venv si common practice as documented. However, on cimg/python, python -m venv venv produces a virtual environment with a symlink to a fixed x.y.z python version (/home/circleci/.pyenv/versions/3.11.10/bin/python for instance on cimg/python:3.11.
This causes . venv/activate to fail with Error: [Errno 2] No such file or directory: 'venv/bin/python' as soon as the image is updated with a new minor Python version.
To Reproduce
Using the following config.yml:
jobs:
build:
docker:
- image: cimg/python:3.11.4
steps:
- checkout
- restore_cache:
keys:
- << pipeline.parameters.cache-version >>-{{ checksum "Pipfile.lock" }}
- << pipeline.parameters.cache-version >>-
- run:
name: install dependencies
command: |
python -m venv /tmp/venv
. /tmp/venv/bin/activate
pip install pipenv
pipenv install --dev
- save_cache:
paths:
- /tmp/venv
key: << pipeline.parameters.cache-version >>-{{ checksum "Pipfile.lock" }}
Change the used image from cimg/python:3.11.4 to cimg/python:3.11 and the CI should fail with the No such file or directory error.
Expected behavior
Caching the venv should not make the CI to suddenly fail as soon as the Python minor changes when using cimg/python:x.y.
Workarounds
Use cimg/python:x.y.z instead of cimg/python:x.y wich is inconveniant.
- Lenguaje dominante
- Dockerfile
- Estrellas
- 34
- Forks
- 33
- Merge medio
- 8 h 45 min
- PR fusionados (30 d)
- 7
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CircleCI-Public/cimg-python
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
CircleCI-Public/cimg-python#304 ·
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
CircleCI-Public/cimg-python#303 ·
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
CircleCI-Public/cimg-python#265 ·
-
Bug Report: Re-support 3.13.0Abiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
CircleCI-Public/cimg-python#260 ·
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
CircleCI-Public/cimg-python#258 ·
Todos los issues de CircleCI-Public/cimg-python
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
[guide] AGENTS.md claims the coverage gate, e2e and full lint run on every PR after ADR 0011 focused validationPosiblemente ocupada @hivecommons-hive la tomó hoy. Abiertoagent/guide documentation hive/claimed-by-guide stage/040-covered-by-pr
Dificultad 2/5 1-3 horas Aptitud para principiantes 81/100
cncf/endusers#2006 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
opensearch-project/agent-health#603 ·
Los mantenedores suelen responder en 2 días