問題
pip install cryptography
が失敗する。
cryptography
はpoetry
の依存ライブラリ。
imageはpython:3.9-slim-buster
解決策
cryptography
がRUSTコンパイラを使用しないバージョンを指定する。かつ依存ライブラリをapt
でインストール。
環境変数 CRYPTOGRAPHY_DONT_BUILD_RUST
に何でも良いので値をセットするとRUSTコンパイラを使わなくなる。
Dockerfile
poetry
を使ってPythonアプリを動かす例。
FROM python:3.9-slim-buster
ENV PYTHONUNBUFFERED 1
ENV CRYPTOGRAPHY_DONT_BUILD_RUST 1
WORKDIR /src
RUN apt update && apt install --no-install-recommends -y build-essential libffi-dev ca-certificates
python-cffi libssl-dev
RUN pip install cryptography==3.4.1
RUN pip install poetry
RUN mkdir /src/logs
COPY pyproject.toml* poetry.lock* ./
COPY app /src/app
COPY log_conf.yml ./
COPY env.sh ./
RUN poetry config virtualenvs.in-project true
RUN if [ -f pyproject.toml ]; then poetry install; fi
CMD ["poetry", "run", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--reload", "-
-log-config", "log_conf.yml"]