создайте dockerfile для запуска приложения на python и groovy - PullRequest
0 голосов
/ 12 февраля 2019

Я работаю над проектом, который использует как python, так и groovy для извлечения данных с веб-сайтов и некоторой разработки этих данных.

Я хочу создать Docker-файл, который должен иметь Python (3.6.5), так как базовый образ и java8 и groovy должны быть установлены на нем для запуска моего кода.

файл docker, который у меня есть сейчас, работает для всех кодов python (изображение: FROM python: 3.6.5), но не работает дляСценарий groovy и я не могу найти решение, которое я могу использовать для установки groovy в dockerfile.

есть ли кто-нибудь, у кого есть dockerfile, решающий эту проблему части?

#### docker file ниже
FROM python:3.6.5

RUN sh -c "ls /usr/local/lib"


RUN sh -c "cat /etc/*-release"

# Contents of requirements.txt each on a separate line for incremental builds
RUN pip install SQLAlchemy==1.2.7
RUN pip install pandas==0.23.0
RUN pip uninstall bson
RUN pip install pymongo
RUN pip install openpyxl==2.5.3
RUN pip install joblib
RUN pip install impyla


RUN sh -c "mkdir -p /src/dateng"

ADD . /src/dateng

RUN sh -c "ls /src/dateng"

WORKDIR /src/dateng/

ENTRYPOINT ["python", "/src/dateng/_aws/trigger.py"]

1 Ответ

0 голосов
/ 12 февраля 2019

Вам не нужно использовать sh -c command, просто RUN command, и мы не должны использовать инструкцию RUN для каждой команды, хотя мы должны сгруппировать их только в один RUN, потому что каждый RUN является отдельным слоемв образе докера, таким образом увеличивая его окончательный размер.

Возможное решение

Вдохновленный в этом Dockerfile Я использую для демонстрации Python:

FROM python:3.6.5

ARG CONTAINER_USER="python"
ARG CONTAINER_UID="1000"

# Will not prompt for questions
ENV DEBIAN_FRONTEND=noninteractive \
    CONTAINER_USER=python \
    CONTAINER_UID=1000

RUN apt update && \
    apt -y upgrade && \
    apt -y install \
      ca-certificates \
      locales \
      tzdata \
      inotify-tools \
      python3-pip \
      groovy && \

    locale-gen en_GB.UTF-8 && \
    dpkg-reconfigure locales && \

    #https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
    printf "fs.inotify.max_user_watches=524288\n" >> /etc/sysctl.conf && \

    useradd -m -u ${CONTAINER_UID} -s /bin/bash ${CONTAINER_USER}

ENV LANG=en_GB.UTF-8 \
    LANGUAGE=en_GB:en \
    LC_ALL=en_GB.UTF-8

USER ${CONTAINER_USER}

RUN pip3 install \
      fSQLAlchemy==1.2.7 \
      pandas==0.23.0 \
      pymongo \
      openpyxl==2.5.3 \
      joblib \
      impyla && \
    pip3 uninstall bson


# pip install will put the executables under ~/.local/bin
ENV PATH=/home/"${CONTAINER_USER}"/.local/bin:$PATH

WORKDIR /home/${CONTAINER_USER}/workspace

ADD . /home/${CONTAINER_USER}/dataeng

EXPOSE 5000

ENTRYPOINT ["python", "/home/python/dateng/_aws/trigger.py"]

ПРИМЕЧАНИЕ : я нахожусь за корпоративным брандмауэром, поэтому я не могу протестировать создание этого образа в том виде, как он есть сейчас, потому что мне нужно было бы добавить к нему то, что вам не нужно.Дайте мне знать, если у вас что-то не получится, и я позабочусь об этом дома.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...