如何使用主机上的数据目录作为Docker容器中的挂载卷

时间:2019-04-16 15:52:02

标签: docker docker-compose dockerfile

我想通过docker compose将包含我的数据的主机目录挂载到Docker容器中。

这是我的目录树:

.
├── 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

我想知道是否可以修改dockerfile以便将主机应用程序目录挂载在容器中,以便将该目录(包括数据目录)本地完成的更改保存在容器中。

我已经尝试过使用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

尽管事实是自己构建dockerfile。

0 个答案:

没有答案