Вот пример проблемы:
Dockerfile:
FROM python:3.6.3
RUN pip install apache-airflow[crypto,celery,postgres,hive,jdbc]=1.9.0
COPY requirements.txt /
RUN pip install -r /requirements.txt
requirementx.txt:
pytz==2017.3
Когда я запускаю docker-compose -f test.yml build, он приступает к установке apache-airflow и списку зависимых библиотек, которые он обнаруживает. Одной из таких библиотек в данном случае является pytz-2019.1. Когда он попадает в строку pip install -r /requirements.txt
, он обнаруживает, что версия 2019.1 уже установлена, поэтому он идет вперед и пытается удалить ее, вот когда я получаю следующие ошибки:
Found existing installation: pytz 2019.1
Uninstalling pytz-2019.1:
ERROR: Could not install packages due to an EnvironmentError: [Errno 39] Directory not empty: '/usr/local/lib/python3.6/site-packages/pytz-2019.1.dist-info/'
ERROR: Service 'flower' failed to build: The command '/bin/sh -c pip install -r /requirements.txt' returned a non-zero code: 1
Обходное решение, которое я проделал до сих пор, состоит в том, чтобы переместить строку pip install -r /requirements.txt
над строкой pip install apache-airflow
, чтобы не нужно было удалять какие-либо библиотеки. Мне было интересно, почему не работает деинсталляция? Это просто упрощенная версия проблемы, но по существу любые шаги, требующие удаления, не работают.
Дополнительная информация:
- побежал от имени пользователя root
- вывод информации о докере:
Containers: 6
Running: 6
Paused: 0
Stopped: 0
Images: 131
Server Version: 17.12.1-ce
Storage Driver: overlay
Backing Filesystem: xfs
Supports d_type: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local local-persist
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
NodeID: yheeakrhdoo3ep5mku3vbhnpl
Is Manager: true
ClusterID: sqaigfmafaxut9ulddldcz1o0
Managers: 1
Nodes: 1
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Force Rotate: 0
Autolock Managers: false
Root Rotation In Progress: false
Node Address: xx.xxx.xx.xx
Manager Addresses:
xx.xxx.xxx.xx:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-229.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.5 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.641GiB
Name: xxxx
ID: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
Docker Root Dir: /opt/docker/var-lib
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: overlay: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior.
Reformat the filesystem with ftype=1 to enable d_type support.
Running without d_type support will not be supported in future releases.
WARNING: bridge-nf-call-ip6tables is disabled
Я заменил некоторую информацию на ххх.
Любая помощь будет принята с благодарностью.
Спасибо,
-К