#python #docker #cython
Вопрос:
Докерфайл:
# syntax=docker/dockerfile:1
FROM python:alpine3.14 AS cython-compile
WORKDIR /tmp/cython
COPY /data/python .
RUN pip3 install --upgrade pip amp;amp;
pip3 install --no-cache-dir cython amp;amp;
apk add --no-cache --virtual .build-dependencies gcc musl-dev amp;amp;
python3 setup.py build
FROM alpine:latest
WORKDIR /data
COPY --from=cython-compile /tmp/cython .
докер-compose.yml:
version: "3.9"
services:
testtest:
container_name: ztz-test
build:
context: .
dockerfile: Dockerfile
ports:
- "7776:7776"
volumes:
- .:/data
Когда я запускаю команду docker-compose build
, ошибки вообще нет, но файл, скомпилированный cython, не копируется. Я подтвердил, что файл находится в /tmp/cython, прокомментировав эту строку:
FROM alpine:latest
WORKDIR /data
COPY --from=cython-compile /tmp/cython .
Комментарии:
1.
volumes:
В вашем файле Dockerfile все в/data
каталоге конечного изображения заменяется произвольным содержимым с хоста. Вы должны удалить этот блок, чтобы использовать встроенный контент из изображения.2. Значит, я должен удалить
volumes: .:/data
? неужели нет другого выхода?