Ваш контейнер будет выходить, пока он создает каталог. Жизнь вашего контейнера - это жизнь команды exec
или точки входа docker, поэтому ваш контейнер умрет вскоре после exec "$@"
.
Если вы ищете способ создать каталог из env, тогда вы можете попробоватьэто
#!/bin/bash
set -x
source /home/${HADOOP_INSTALL_USERNAME}/.bashrc
kinit -kt /home/${HADOOP_INSTALL_USERNAME}/keytab/dept-test-hadoop.${HADOOP_INSTALL_ENV}.keytab dept-test-hadoop
mkdir $MY_DIR
ls
exec "$@"
, поэтому теперь передайте MY_DIR
в env, но помните о длительном процессе.
docker run -it -e MY_DIR=abcd hadoop-hive:v1 "your_long_running_process_to_exec"
например
docker run -it -e MY_DIR=abcd hadoop-hive:v1 "<hadoop command>"
Если вы запуститепроцесс из ENV в exec, то вы также можете попробовать
#!/bin/sh
set -x
mkdir $MY_DIR
ls
exec ${START_PROCESS}
, чтобы вы могли пройти во время выполнения
docker run -it -e MY_DIR=abcd -e START_PROCESS=my_process hadoop-hive:v1