Последние 2 ошибки происходят, потому что у вас есть двойные кавычки внутри двойных кавычек .
/entrypoint.sh: line 11: qa-airflow-celery.xxxxx.ng.0001.use1.cache.amazonaws.com: command not found
/entrypoint.sh: line 21: qa-airflow-database.xxxxxxx.us-east-1.rds.amazonaws.com: command not found
Я думаю, что вы можете избавиться от внешних кавычек во всех ваших bash файлах
#!/usr/bin/env bash
TRY_LOOP="20"
SLUGIFY_USES_TEXT_UNIDECODE=yes
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$BRANCH" == 'master' ]
then
${REDIS_HOST:="airflow-celery.xxxxx.0001.use1.cache.amazonaws.com"}
else [ "$BRANCH" == 'QA' ]
${REDIS_HOST:="qa-airflow-celery.xxxx.ng.0001.use1.cache.amazonaws.com"}
fi
: ${REDIS_PORT:="6379"}
if [ "$BRANCH" == 'master' ]
then
${POSTGRES_HOST:="airflow-database.xxxxx.us-east-1.rds.amazonaws.com"}
${POSTGRES_USER:="airflow"}
else [ "$BRANCH" == 'QA' ]
${POSTGRES_HOST:="qa-airflow-database.xxxxx.us-east-1.rds.amazonaws.com"}
${POSTGRES_USER:="airflow"}
fi
Если это не сработает, go с этим решением
{ ссылка }
Первая ошибка связана с тем, что изображение воздушного потока не содержит git.
/entrypoint.sh: line 6: git: command not found
Самый простой способ - добавить в entrypoint.sh
файл команду установки git в качестве первой строки. Для дистрибутива Debian:
apt install -y git
Если дистрибутив RHEL:
yum -y install git
Недостатком этого подхода является то, что установка занимает некоторое время.
Вам лучше добавить git зависимость от изображения :
- Запустите изображение с помощью команды
docker run
, но без --entrypoint entrypoint.sh
. - Проверка идентификатора контейнера
docker ps
В качестве примера идентификатор контейнера c3f279d17e0a
docker exec -it c3f279d17e0a bash
- Установить git вручную с помощью apt / yum, как указано выше, затем отсоедините bash, набрав
ctrl+p
и ctrl+q
друг за другом. - Зафиксировать новое изображение
docker commit c3f279d17e0a airflow-git:version1
Может быть полезно зафиксировать изменения или настройки файла контейнера в новом изображении. Это позволяет отлаживать контейнер с помощью интерактивной оболочки или экспортировать рабочий набор данных на другой сервер. Как правило, лучше использовать Dockerfiles для управления изображениями документированным и поддерживаемым способом.
https://docs.docker.com/engine/reference/commandline/commit/
Теперь у вас есть изображение airflow-git:version1
, запустите его с вашим оригиналом запустите команду с --entrypoint entrypoint.sh
, и она должна работать.