Для текущего рабочего сценария у меня есть два контейнера, которые должны обмениваться данными.Первый контейнер - это приложение-колба, которое выполняет некоторую работу с данными и создает файл журнала.В то время как другой контейнер - R блестящее приложение, которое служит информационной панелью статуса для приложения, а также, когда это необходимо, пользователь также может напрямую просматривать файл журнала, предоставив ключ на самой приборной панели.Здесь моя проблема заключается в том, что при доступе к файлу журнала из блестящей панели мониторинга контейнера отказано в выдаче разрешения.Я смонтировал один и тот же том в обоих контейнерах, также попытался дать владельцу разрешение на блестящий контейнер приложения, но контейнер все еще не мог получить доступ к файлу, в то время как я могу получить доступ к одному и тому же файлу в расположении хоста.Есть ли что-то, чего мне не хватает, что требует авторизации общих томов между контейнерами, или есть какие-то проблемы с блестящим приложением.Пожалуйста, предоставьте возможные решения.
Необходимые файлы
Файлы Docker-compose.Docker-compose файл для приложения:
version: '3.7'
services:
app:
container_name: app
image: mlengine
networks:
- network1
build:
context: .
dockerfile: DockerfileEngine
volumes:
- ./logs_n_status:/root/project/logs_n_status
#- logData:/root/project/logs_n_status
ports:
- 7011:3000
expose:
- "3000"
Docker-compose файл для блестящей панели инструментов:
# docker-compose.yml
version: '3.7'
services:
dashboard:
container_name: dashboard
image: mlapidashboard
networks:
- network1
build:
context: .
dockerfile: DockerfileRTD
volumes:
- /home/mlprod/dmda/testAPI/logs_n_status:/root/project/logs_n_status
#--volumes-from Container4:ro
#- logData:/root/project/logs_n_status:ro
ports:
- 9000:3838
networks:
network1:
#volumes:
# logData:
DockerfileEngine:
FROM ubuntu:18.04
RUN apt-get --fix-missing update && apt-get --fix-broken install && apt-get install -y poppler-utils && apt-get install -y tesseract-ocr && \
apt-get install -y libtesseract-dev && apt-get install -y libleptonica-dev && ldconfig && apt-get install -y python3.6 && \
apt-get install -y python3-pip && apt install -y libsm6 libxext6
RUN apt-get update && \
apt-get install -y openjdk-8-jdk && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/oracle-jdk8-installer;
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME
WORKDIR /root/
RUN mkdir /root/project
WORKDIR /root/project
RUN mkdir /root/project/processingDirectory
ADD requirements.txt .
RUN pip3 install -r ./requirements.txt
COPY ./xxxx xxxx
RUN python3 ./nltkDownloader.py
CMD ["gunicorn", "-t", "999999", "--bind", "0.0.0.0:3000", "wsgi:app"]
DockerfileDashboard:
FROM rocker/shiny:3.5.1
RUN apt-get update && apt-get install libcurl4-openssl-dev libv8-3.14-dev libsasl2-dev libssl-dev -y &&\
mkdir -p /var/lib/shiny-server/bookmarks/shiny
RUN R -e "install.packages(c('mongolite', 'dplyr', 'jsonlite', 'ggplot2', 'grid', 'gridExtra', 'DT', 'data.table', 'httr', 'shiny'))"
RUN mkdir /root/project
RUN mkdir /root/project/logs_n_status
COPY ./RealTimeDashboard /srv/shiny-server/RealTimeDashboard
RUN chmod -R 755 /srv/shiny-server/
RUN chmod -R 777 /root/project/logs_n_status
EXPOSE 3838
CMD ["/usr/bin/shiny-server.sh"]