Как передать аргумент для файла конфигурации в развертывании JuPyterhub? - PullRequest
0 голосов
/ 21 мая 2019

Я хочу установить envkey в моем образе докера, для которого требуется пара key-value. У меня есть пара key-value, но я не могу понять, как мне установить ее в образ докера, используя эти аргументы, а затем развернуть ее на jupyterhub.

Я попытался прочитать другие мои развертывания, которые используют envkey. Вот как это происходит: 1. У меня есть Makefile, и я запускаю команду sudo make dev config=aviral.cfg 2. Команда dev в Makefile выглядит следующим образом:

dev:
    docker build -t $(IMAGE) -f Dockerfile.dev . && docker tag $(IMAGE) $(ALIAS)
    @echo "\nCreate docker container.."
    CONFIG=$(config) IMAGE=$(IMAGE) docker-compose -f docker-compose.yml up -d --scale test=0 --scale airflow_worker=0
    @echo "\n$(GREEN)Done.$(NO_COLOR)\n"
    @echo "Try airflow at http://localhost:8080."
    @echo "and flower at http://localhost:5555."

  1. Файл docker-compose:
airflow_worker:
        image: ${IMAGE}:latest
        restart: always
        depends_on:
            - airflow_scheduler
        # ports:
        #     - 8793:8793
        # environment:
            # - GOOGLE_APPLICATION_CREDENTIALS=/gcloud/cloud.json
        env_file:
            - ${CONFIG}
        command: worker

Как видите, файл env_file передается.

Я не могу сделать вывод, как это сделать в JuPyterHub.

Диаграмма руля здесь (https://jupyterhub.github.io/helm-chart/jupyterhub-0.8.2.tgz). И моя конфигурация:

proxy:
  secretToken: "yada_yada"
singleuser:
  image:
    name: yada_yada.dkr.ecr.ap-south-1.amazonaws.com/demo
    tag: 12h
  lifecycleHooks:
    postStart:
      exec:
        command: ["/bin/sh", "-c", 'ipython profile create; cd ~/.ipython/profile_default/startup; echo ''run_id = "sample" ''> aviral.py']
  imagePullSecret:
    enabled: true
    registry: yada_yada.dkr.ecr.ap-south-1.amazonaws.com
    username: aws
    email: aviral@yada_yada.com
    password: yada_yada

В моем конфигурационном файле я передаю переменные как:

ENVKEY=my_personal_envkey

Я ожидаю, что мои конфиги будут переданы в докере, или, возможно, я пишу надлежащий Makefile для этого материала, на данный момент я сталкиваюсь с этой ошибкой:

Step 19/32 : RUN     curl -s https://raw.githubusercontent.com/envkey/envkey-source/master/install.sh | bash
 ---> Running in 35bc1cf0e1c8
envkey-source 1.2.9 Quick Install
Copyright (c) 2019 Envkey Inc. - MIT License
https://github.com/envkey/envkey-source

Downloading envkey-source binary for linux-amd64
Downloading tarball from https://github.com/envkey/envkey-source/releases/download/v1.2.9/envkey-source_1.2.9_linux_amd64.tar.gz
envkey-source is installed in /usr/local/bin
Installation complete. Info:

bash: line 97:    29 Segmentation fault      envkey-source -h
The command '/bin/sh -c curl -s https://raw.githubusercontent.com/envkey/envkey-source/master/install.sh | bash' returned a non-zero code: 139

Хотя один этот вопрос должен быть достаточно хорош, чтобы дать вам картину, но ради контекста (если), вот некоторые из вопросов: 1. Как мне сделать jupyter-hub доступным к моему личному хранилищу образов докера? 2. Невозможно запустить команду жизненного цикла из config.yaml при развертывании jupyterhub 3. Как автоматически записать файл в папку автозагрузки, когда новый пользователь регистрируется / регистрируется в концентраторе JuPyter?

1 Ответ

0 голосов
/ 22 мая 2019

Вероятно, вы получаете эту ошибку, потому что скрипт install.sh пытается добавить двоичный файл envkey-source в каталог / usr / local / bin, а затем пытается запустить envkey-source -h и завершается неудачно.Проверьте, есть ли у пользователя (если он не root) разрешение на это, или существует каталог /usr/local/bin в образе контейнера.

Надеюсь, это поможет!

...