我想通过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。