Как использовать каталог данных на хосте как смонтированный том в контейнере Docker - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу смонтировать каталог хоста, содержащий мои данные, в контейнер Docker через docker compose.

Вот мое дерево каталогов:

.
├── docker-compose.yml
├── back
│   ├── app
│   │   ├── main.py
│   │   ├── data
│   │   ├── utils
│   ├── Dockerfile
│   ├── supervisord.conf   
│   │ 

Dockerfile -

FROM cameroncruz/flask-nginx-uwsgi-miniconda:python3.6

RUN conda create --name myenv python=3.6

RUN /bin/bash -c ". activate myenv && \
    conda config --add channels default && \
    conda install --channel conda-forge uwsgi && \
    conda install --channel default scikit-learn && \
    conda install --channel default numpy && \
    conda install --channel default flask && \
    /opt/conda/envs/myenv/bin/pip install pandas"

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

COPY app /app

EXPOSE 80 

supervisord.conf -

[supervisord]
nodaemon=true

[program:uwsgi]
environment=PATH='/opt/conda/envs/myenv/bin'
command=/opt/conda/envs/myenv/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini --die-on-term --need-app

stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

[program:nginx]
command=/usr/sbin/nginx
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
# Graceful stop, see http://nginx.org/en/docs/control.html
stopsignal=QUIT

Я хотел бы знать, возможно ли изменить файл docker для монтирования каталога приложения хоста в контейнере, чтобы изменения, сделанные локально в этом каталоге (включаякаталог данных) сохраняются в контейнере.

Я пытался с этим docker-compose.yml:

version: '3'
services:
  app:
    build: ./back
    ports:
      - "80:80"
    volumes:
      - ./back/app:/app

Но запуск docker-compose up приводит к следующей ошибке -

realpath() of /app/uwsgi.ini failed

Несмотря на то, чтосоздание докер-файла на собственных работах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...