我是Docker的新手。
我有两个问题
第1个问题
我已经创建了这个基本的docker文件,该文件安装了 Apache-Airflow 和 Apache-Celery 。但是现在,只想安装气流。我遇到一个奇怪的问题,说unsatisfiable constraints
。
我累了。我已经尝试过但无法解决问题。任何帮助将不胜感激。
FROM python:3.6-alpine
WORKDIR /airflow
RUN apk add git gcc python3-dev gpgme-dev libc-dev python-devel python-setuptools mysql-devel gcc-c++
COPY airflow/requirements.txt airflow/requirements.txt
RUN pip install -r airflow/requirements.txt
COPY . /airflow
EXPOSE 8080 5555
CMD ["airflow", "initdb"]
我有我的requirements.txt文件,该文件具有Apache-Airflow的依赖项。
requirements.txt
pytz==2015.7
cryptography
requests
pyOpenSSL
ndg-httpsclient
pyasn1
psycopg2
celery>=4.0.0
flower>=0.7.3
Flask==1.1.1
requests==2.22.0
airflow==1.10.8
MySQL-python
flask_bcrypt
第2个问题
我们使用conda-library
映像continuumio/miniconda3
安装依赖项。使用它是一种好方法吗?
答案 0 :(得分:0)
进行了一些更改,这是新的dockerfile:
FROM python:3.6-alpine
WORKDIR /airflow
RUN apk add build-base libffi-dev musl-dev postgresql-dev mariadb-connector-c-dev
COPY requirements.txt ./requirements.txt
RUN pip install -r requirements.txt
COPY . /airflow
EXPOSE 8080 5555
CMD ["airflow", "initdb"]
以及新的requirements.txt:
pytz==2015.7
cryptography
pyOpenSSL
ndg-httpsclient
pyasn1
psycopg2
celery>=4.0.0
flower>=0.7.3
Flask==1.1.1
requests==2.22.0
apache-airflow==1.10.8
mysqlclient
flask_bcrypt
更改摘要:
apk add build-base
替换了其中的大部分libffi-dev
软件包添加了cryptography
musl-dev
和postgresql-dev
mysqlclient
mariadb-connect-c-dev
添加了mysqlclient
是的,通常,最好不要使用alpine构建python软件包(https://pythonspeed.com/articles/alpine-docker-python/)。如果切换到continuumio/miniconda3
,它会更简单(构建速度也更快)。
FROM continuumio/miniconda3
WORKDIR /airflow
RUN apt-get update && apt-get install -y libpq-dev libmariadbclient-dev build-essential
COPY requirements.txt ./requirements.txt
RUN pip install -r requirements.txt
COPY . /airflow
EXPOSE 8080 5555
CMD ["airflow", "initdb"]