Я пытаюсь запустить проект Docker, который имеет 3 контейнера.
Всякий раз, когда я запускаю
$ docker-compose up --build
, весь процесс идет хорошо, без предупреждения или ошибки на экране.
Проблема в том, что задачи, которые должны выполнять контейнеры, не выполняются. Когда я проверяю файл журнала, он имеет следующее содержимое:
Traceback (most recent call last):
File "/code/etl_script.py", line 4, in <module>
from logs.log import log, database_error
ModuleNotFoundError: No module named 'logs.log'
Основные компоненты моей структуры каталогов следующие:
.
+-- crontab
+-- deploy.yml
+-- docker-compose.yml
+-- Dockerfile
+-- elt_script.py
+-- README.md
+-- requirements.txt
+-- logs
| +-- __init__.py
| +-- log.py
Когда etl_script. py выполняется, ошибка, о которой я упоминал ранее, записывается в файл журнала. Строка в etl_script.py , которая генерирует сообщение об ошибке:
from logs.log import log, database_error
, а содержимое logs.log.py:
from datetime import datetime
def database_error(error):
log(error)
def log(message):
print("[%s] %s" % (datetime.now(), message))
Возможно кто-нибудь помочь мне узнать, что я делаю не так? Я довольно новичок в Docker.
РЕДАКТИРОВАТЬ 1:
Dockerfile:
FROM adoptopenjdk/openjdk12:x86_64-alpine-jre-12.33
RUN apk add --no-cache python3 \
&& python3.6 -m ensurepip \
&& pip3 install --upgrade pip setuptools \
&& rm -r /usr/lib/python*/ensurepip && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
rm -r /root/.cache
ENV ENV=${ENV}
WORKDIR /code
ADD requirements.txt /code
RUN pip install -r requirements.txt
ADD cogroo4py /code/cogroo4py
RUN python /code/cogroo4py/setup.py install
ENV APP_USER appuser
RUN adduser -g "App User" -D $APP_USER
COPY crontab /var/spool/cron/crontabs/$APP_USER
RUN chmod 0777 /var/spool/cron/crontabs/$APP_USER
ADD . /code
RUN touch /code/cron.log
RUN chmod 0777 /code/cron.log
RUN chmod 0777 /code/
RUN chmod 0777 /etc/crontabs/$APP_USER
CMD ["crond", "-f", "-d", "0"]