Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

474
Vistas
¿Cómo deshacerse del error de compilación de criptografía?

Estoy tratando de construir un dockerfile, pero el problema es que cuando intenta construir específicamente la criptografía no se está construyendo.

MI Dockerfile

 FROM python:3.7-alpine ENV PYTHONUNBUFFERED 1 RUN apk update \ # psycopg2 dependencies && apk add --virtual build-deps gcc python3-dev musl-dev\ && apk add postgresql-dev \ && apk add build-base \ # Pillow dependencies && apk add jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev \ # CFFI dependencies && apk add libffi-dev py-cffi \ # Translations dependencies && apk add gettext \ # https://docs.djangoproject.com/en/dev/ref/django-admin/#dbshell && apk add postgresql-client \ # cairo && apk add cairo cairo-dev pango-dev gdk-pixbuf-dev poppler-utils # fonts for weasyprint RUN mkdir ~/.fonts COPY ./fonts/* /root/.fonts/ # secret key (should be in docker-secrets, or we need to run minikube locally RUN mkdir /etc/secrets COPY secret.readme proxy_rsa_key* /etc/secrets/ # Requirements are installed here to ensure they will be cached. COPY ./requirements /requirements RUN pip install -r /requirements/local.txt COPY ./compose/local/django/entrypoint /entrypoint RUN sed -i 's/\r//' /entrypoint RUN chmod +x /entrypoint COPY ./compose/local/django/start /start RUN sed -i 's/\r//' /start RUN chmod +x /start COPY ./compose/local/django/celery/worker/start /start-celeryworker RUN sed -i 's/\r//' /start-celeryworker RUN chmod +x /start-celeryworker COPY ./compose/local/django/celery/beat/start /start-celerybeat RUN sed -i 's/\r//' /start-celerybeat RUN chmod +x /start-celerybeat COPY ./compose/local/django/celery/flower/start /start-flower RUN sed -i 's/\r//' /start-flower RUN chmod +x /start-flower WORKDIR /app ENTRYPOINT ["/entrypoint"]

cuando intento construir mi dockerfile, muestra:

 Building wheel for cryptography (PEP 517): finished with status 'error' ERROR: Command errored out with exit status 1: error: Can not find Rust compiler ---------------------------------------- ERROR: Failed building wheel for cryptography

Intenté resolver pero no pude. Soy un novato en Docker. Por favor, ayúdame a deshacerme de este problema.

over 4 years ago · Santiago Trujillo
6 Respuestas
Responde la pregunta

0

Editando pyvenv.cfg agregando mi .env :

 CRYPTOGRAPHY_DONT_BUILD_RUST=1

luego, haciendo pip install cryptography , resolvió mi problema.

over 4 years ago · Santiago Trujillo Denunciar

0

Enfrenté el mismo problema y para resolverlo probé lo siguiente:

  1. Respuesta proporcionada por @larsks. RUN apk add cargo openssl-dev ayudó. Pero esto resultó en un tamaño de imagen enorme para mí (> 1 GB). La mejor práctica es apuntar siempre al mínimo indispensable con un tamaño de imagen pequeño. De esta manera, no nos exponemos a ninguna vulnerabilidad externa.

  2. Respuesta proporcionada por Sabri Özgür, ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1 . ¡Esto funcionó muy bien!

  3. Según el comentario agregado por @ riptusk331 para la respuesta anterior, simplemente ignorar la compilación de Rust solo puede funcionar por ahora, ya que Cryptography 3.5+ comenzará a requerir Rust.

Mi solución solo para estar seguro fue;

 ... ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1 ... RUN pip install cryptography==3.4.6 ...

De esta manera, logré mantener el tamaño de la imagen en un valor considerablemente más bajo mientras lograba que la compilación pasara.

over 4 years ago · Santiago Trujillo Denunciar

0

pip install -U pip es todo lo que tenía que hacer

over 4 years ago · Santiago Trujillo Denunciar

0

Ya que el error es...

 error: Can not find Rust compiler

...la solución es instalar el compilador rust. También necesitará cargo , el administrador de paquetes Rust, y parece que a su Dockerfile le falta openssl-dev .

Lo siguiente se construye con éxito para mí:

 FROM python:3.7-alpine ENV PYTHONUNBUFFERED 1 RUN apk add --update \ build-base \ cairo \ cairo-dev \ cargo \ freetype-dev \ gcc \ gdk-pixbuf-dev \ gettext \ jpeg-dev \ lcms2-dev \ libffi-dev \ musl-dev \ openjpeg-dev \ openssl-dev \ pango-dev \ poppler-utils \ postgresql-client \ postgresql-dev \ py-cffi \ python3-dev \ rust \ tcl-dev \ tiff-dev \ tk-dev \ zlib-dev RUN pip install cryptography

Tenga en cuenta que la línea de comando apk add ... anterior es en gran medida la misma que tiene; Acabo de simplificar las declaraciones múltiples de apk add ... en una sola ejecución de apk add .

over 4 years ago · Santiago Trujillo Denunciar

0

criptografía < 3.5:

Puede omitir la instalación de Rust y otras dependencias relacionadas agregando la siguiente línea antes de los comandos de apk add:

 ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1

criptografía >= 3.5 : Gracias @ riptusk331

Después de esta versión, se requerirá óxido. Instale una versión específica <3.5 o siga las instrucciones de instalación de criptografía. Se indica en el enlace adjunto que se explican de manera muy agresiva en los documentos.

over 4 years ago · Santiago Trujillo Denunciar

0

Algunas personas pueden venir aquí (como lo hice yo) buscando una solución solo para Python, no necesariamente Alpine.

Hay varias opciones disponibles, mencionadas en el problema de github . (solo elige uno de estos)

  1. Puedes instalar rust, como se menciona en otra respuesta.
  2. Puede degradar su versión de cryptography a 3.4.x
  3. Puede actualizar a pip versión 19.1.1 o superior, que instala paquetes precompilados
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda