monometa

Untitled

Jun 29th, 2024
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. Привет
  2.  
  3. Пытаюсь сконфирурить создание архива для EMR-S (версия 6.X), чтобы иметь возможность:
  4. * использовать кастомную версию питона
  5. * использовать poetry как менеджер зависимостей
  6. * создавать bundle из текущих джоб и енрипоинтов
  7.  
  8. Какое-то время мучаюсь без особых результатов, глядя на
  9.  
  10. https://github.com/aws-samples/emr-serverless-samples/tree/main/examples/pyspark
  11. https://github.com/awslabs/amazon-emr-cli/blob/main/src/emr_cli/templates/pyspark/Dockerfile
  12.  
  13. Текущий вариант Dockerfile
  14.  
  15. ARG PYTHON_VERSION=3.9.18
  16.  
  17. FROM --platform=linux/amd64 amazonlinux:2 AS base
  18. ARG PYTHON_VERSION
  19.  
  20. RUN yum install -y gcc openssl11-devel bzip2-devel libffi-devel tar gzip wget make && \
  21. wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz && \
  22. tar xzf Python-${PYTHON_VERSION}.tgz && \
  23. cd Python-${PYTHON_VERSION} && \
  24. ./configure --enable-optimizations && \
  25. make install
  26.  
  27.  
  28. RUN yum install -y python3 tar gzip
  29. RUN yum -y update && yum -y install \
  30. curl \
  31. java-1.8.0-openjdk \
  32. java-1.8.0-openjdk-devel \
  33. && yum clean all
  34.  
  35. ENV VIRTUAL_ENV=/opt/venv
  36. RUN python3 -m venv $VIRTUAL_ENV --copies
  37. RUN cp -r /usr/local/lib/python3.9/* $VIRTUAL_ENV/lib/python3.9/
  38.  
  39. # Ensure our python3 executable references the virtual environment
  40. ENV PATH="$VIRTUAL_ENV/bin:$PATH"
  41.  
  42. ENV PATH="${PATH}:/root/.local/bin"
  43.  
  44. # RUN python3 -m pip poetry
  45. RUN python3 -m pip install --upgrade pip && \
  46. python3 -m pip install venv-pack==0.2.0
  47.  
  48. # ENV PATH="$PATH:/root/.local/bin"
  49.  
  50. WORKDIR /app
  51.  
  52. COPY . .
  53.  
  54. FROM base as build-poetry
  55. ARG PYTHON_VERSION
  56. # RUN export PATH="$HOME/.poetry/bin:$PATH"
  57. RUN poetry self add poetry-plugin-bundle && \
  58. poetry bundle venv dist/bundle
  59.  
  60.  
  61. RUN mkdir /output && \
  62. venv-pack -o /output/pyspark_${PYTHON_VERSION}.tar.gz --prefix dist/bundle --python-prefix /home/hadoop/environment
  63.  
  64. FROM scratch as export-poetry
  65. ARG PYTHON_VERSION
  66. COPY --from=build-poetry /output/pyspark_${PYTHON_VERSION}.tar.gz /
  67.  
  68. Текущая ошибка в логах
  69. Caused by: java.io.IOException: error=2, No such file or directory Exception in thread "main" java.io.IOException: Cannot run program "./environment/bin/python":
  70.  
  71. Мб у кого-то есть похожий Docker/sh или альтернативный путь? Вариант с кастомным образовый для всего Application пока не хочется рассматривать
Advertisement
Add Comment
Please, Sign In to add comment