Возможно, мне не хватает некоторого контекста, но я думаю, что у вас есть несколько проблем:
- Вы
COPY /scraper...
и ADD /common...
- эти каталоги висят от root на вашей локальной машине? - Вы устанавливаете
WORKDIR
после COPY
и ADD
, но, как правило (хотя и не обязательно), вы сначала установите это как пункт назначения по умолчанию, а затем вы можете COPY something .
и ADD something .
и эти пункты назначения (.
) относится к вашему WORKDIR
- . Вы используете
/home/scraper
в качестве WORKDIR
, но вы не копируете и не добавляете в него свои файлы.В этот момент он будет пустым. - Ваши
ENTRYPOINT
ссылки app.py
, но ваш файл называется test.py
Один полезный инструмент отладки - это оболочка в контейнеры, например:проверьте структуру каталогов, чтобы убедиться, что она соответствует ожиданиям.Предполагая, что ваше изображение называется scraper
, вы можете:
docker build \
--tag=scraper \
--file=scraper/Dockerfile \
. # Don't forget the period ;-)
Тогда оболочка Alpine называется ash
:
docker run \
--interactive \
--tty \
scraper:latest ash
Или, если ваш Dockerfile
имеет ENTRYPOINT
, затем переопределите его, используя:
docker run \
--interactive \
--tty \
--entrypoint=ash \
scraper:latest
и затем вы можете просмотреть структуру каталогов контейнера:
По умолчанию вы будете использовать /home/scraper
(WORKDIR
):
/home/scraper # ls -l
total 0
Вы можете проверить /scraper
, используя:
/home/scraper # apk install tree
/home/scraper # tree /scraper
/scraper
└── testmodel
└── test.py
1 directory, 1 file
Мне не совсем ясно, какое будет правильное решение для вас , но Надеюсь, это поможетВы прогрессировали:
FROM python:3.7-alpine
RUN apk update && \
apk add --virtual build-deps gcc musl-dev && \
apk add --no-cache postgresql-dev && \
apk add alsa-lib-dev && \
apk add pulseaudio-dev && \
apk add postgresql-dev && \
apk add ffmpeg-dev && \
apk add ffmpeg && \
rm -rf /var/cache/apk/*
WORKDIR home/scraper/
COPY scraper/requirements.txt .
RUN pip install -r requirements.txt
ADD common/testmodel .
ENTRYPOINT ["python3", "-u", "test.py"]
CMD gunicorn -b 0.0.0.0:5000 --access-logfile - "test:app"