Я получаю эти ошибки при запуске docker-compose up
ОШИБКА: для airflow_webserver_1 Невозможно запустить сервисный веб-сервер: во время выполнения OCI не удалось создать: container_ linux. go: 346: запуск контейнера процесс вызвал "process_ linux. go: 449: вызвана инициализация контейнера \" rootfs_ linux. go: 58: монтирование \\ "/ srv / airflow / dags \\" в rootfs \\ "/ var / Библиотека / грузчик / overlay2 / ccf82b65760c1dc8714db8d6b105ab865183c422e8d7d015988dc157104cce0a / слиты \\»в \\ "/ Var / Библиотека / грузчик / overlay2 / ccf82b65760c1dc8714db8d6b105ab865183c422e8d7d015988dc157104cce0a / слиты / USR / местные / воздуха / пантов \\" \\ причиной "не является каталогом \\" \ "": unknown: Вы пытаетесь смонтировать каталог в файл (или наоборот)? Проверьте, существует ли указанный путь к хосту и является ли он ожидаемым типом
ОШИБКА: для веб-сервера Невозможно запустить веб-сервер службы: Ошибка выполнения среды выполнения OCI: container_ linux. go: 346: вызван запуск процесса контейнера "process_ linux. go: 449: вызвана инициализация контейнера \ "rootfs_ linux. go: 58: монтирование \\" / srv / airflow / dags \\ "в rootfs \\" / var / lib / docker / overlay2 / ccf82b65760c1dc8714db8d6b105ab865183c422e8d7d015988dc157104cce0a
Я видел похожие посты, в которых говорится, что я должен проверить, что смонтированные каталоги должны существовать и быть каталогами (а не файлами), т. е. * 101 * 1011 ... * Я проверил, что на моем хосте путь /src/airflow/dags
существует и содержит несколько файлов (код моих пакетов из предыдущих запусков контейнеров).
Как я могу избавиться от этой ошибки и почему это может произойти ?. Я не против снова запустить контейнеры с нуля, потеряв предыдущее содержимое тома.
Вот содержание docker:
версия: сервисы "2.1": postgres: изображение: postgres: 9.6 перезапуск: если среда не остановлена: - POSTGRES_USER = поток воздуха - POSTGRES_PASSWORD = поток воздуха - POSTGRES_DB = поток воздуха
webserver:
build: airflow-server
restart: unless-stopped
depends_on:
- postgres
environment:
- LOAD_EX=n
- EXECUTOR=Local
- VIRTUAL_HOST=airflow.agatha.com
- VIRTUAL_PORT=8080
volumes:
- /srv/airflow/dags:/usr/local/airflow/dags
# Uncomment to include custom plugins
# - /srv/airflow/plugins:/usr/local/airflow/plugins
ports:
- "8075:8080"
command: webserver
healthcheck:
test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
interval: 30s
timeout: 30s
retries: 3
logging:
driver: json-file
options:
max-size: 50m
сети: по умолчанию: внешний: имя: nginx -прокси
(папка airflow-server
содержит пользовательский файл Docker для копирования некоторых файлов конфигурации)
Вот файл Dockerfile
FROM puckel/docker-airflow
USER root
COPY proxy.conf /etc/apt/apt.conf.d/proxy.conf
RUN apt-get update && apt-get install -y gnupg apt-transport-https procps
RUN mkdir /usr/local/airflow/ssh
COPY id_rsa_airflow_user /usr/local/airflow/ssh/id_rsa_airflow_user
RUN mkdir /usr/local/airflow/sparkScripts
COPY FileUnion.py /usr/local/airflow/sparkScripts
COPY ETLDag.py /usr/local/airflow/dags
USER airflow
Полный вывод командной строки:
> :~/docker/airflow$ sudo docker-compose up WARNING: The Docker Engine
> you're using is running in swarm mode.
>
> Compose does not use swarm mode to deploy services to multiple nodes
> in a swarm. All containers will be scheduled on the current node.
>
> To deploy your application across the swarm, use `docker stack
> deploy`.
>
> Starting airflow_postgres_1 ... done Recreating airflow_webserver_1
> ... error
>
> ERROR: for airflow_webserver_1 Cannot start service webserver: OCI
> runtime create failed: container_linux.go:348: starting container
> process caused "process_linux.go:402: container init caused
> \"rootfs_linux.go:58: mounting \\\"/srv/airflow/dags\\\" to rootfs
> \\\"/var/lib/docker/aufs/mnt/8ce629cdb64b63552688c4843fff357530fb5a938ac4219ffc0ef753d3b222ac\\\"
> at
> \\\"/var/lib/docker/aufs/mnt/8ce629cdb64b63552688c4843fff357530fb5a938ac4219ffc0ef753d3b222ac/usr/local/airflow/dags\\\"
> caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a
> directory onto a file (or vice-versa)? Check if the specified host
> path exists and is the expected type
>
> ERROR: for webserver Cannot start service webserver: OCI runtime
> create failed: container_linux.go:348: starting container process
> caused "process_linux.go:402: container init caused
> \"rootfs_linux.go:58: mounting \\\"/srv/airflow/dags\\\" to rootfs
> \\\"/var/lib/docker/aufs/mnt/8ce629cdb64b63552688c4843fff357530fb5a938ac4219ffc0ef753d3b222ac\\\"
> at
> \\\"/var/lib/docker/aufs/mnt/8ce629cdb64b63552688c4843fff357530fb5a938ac4219ffc0ef753d3b222ac/usr/local/airflow/dags\\\"
> caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a
> directory onto a file (or vice-versa)? Check if the specified host
> path exists and is the expected type ERROR: Encountered errors while
> bringing up the project.
И содержимое каталога airflow-server
(некоторые файлы не используются)
~/docker/airflow$ ls -l airflow-server/
total 326788
-rw-rw-r-- 1 user user 5008 mar 25 12:16 Dockerfile
-rw-rw-r-- 1 user user 7302 mar 24 15:37 ETLDagCreator.py
-rw-rw-r-- 1 user user 5900 mar 24 16:16 ETLDag.py
-rw-rw-r-- 1 user user 2564 mar 24 15:19 FileUnion.py
-rw-r--r-- 1 user user 334559382 mar 18 11:08 hadoop-3.1.1.tar.gz
drwxrwxr-x 2 user user 4096 mar 19 10:42 hadoop-client-conf
-rwxrwxr-x 1 user user 2026 mar 18 10:40 hbase.service.keytab
-rwxrwxr-x 1 user user 132 mar 18 10:39 hdfs.headless.keytab
-rwxrwxr-x 1 user user 2002 mar 18 10:38 hive.service.keytab
-rw-rw-r-- 1 user user 625 mar 19 16:02 hosts
-rwxrwxr-x 1 user user 1679 mar 20 10:17 id_rsa_airflow_user
-rw-rw-r-- 1 user user 529 mar 18 10:33 krb5.conf
-rw-rw-r-- 1 user user 101 mar 18 10:45 proxy.conf
-rw-rw-r-- 1 user user 58 mar 18 16:47 resolv.conf
Спасибо